IFC @ r238370
This commit is contained in:
commit
b652778e42
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/projects/bhyve/; revision=238375
2
Makefile
2
Makefile
@ -92,7 +92,7 @@ TGTS= all all-man buildenv buildenvvars buildkernel buildworld \
|
||||
delete-old delete-old-dirs delete-old-files delete-old-libs \
|
||||
depend distribute distributekernel distributekernel.debug \
|
||||
distributeworld distrib-dirs distribution doxygen \
|
||||
everything hierarchy install installcheck installkernel \
|
||||
everything hier hierarchy install installcheck installkernel \
|
||||
installkernel.debug packagekernel packageworld \
|
||||
reinstallkernel reinstallkernel.debug \
|
||||
installworld kernel-toolchain libraries lint maninstall \
|
||||
|
@ -15,6 +15,7 @@
|
||||
# -DNO_WWWUPDATE do not update www in ${MAKE} update
|
||||
# -DNO_CTF do not run the DTrace CTF conversion tools on built objects
|
||||
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
|
||||
# LOCAL_LIB_DIRS="list of dirs" to add additional dirs to libraries target
|
||||
# LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools
|
||||
# list
|
||||
# TARGET="machine" to crossbuild world for a different machine type
|
||||
@ -88,7 +89,7 @@ SUBDIR+=etc
|
||||
|
||||
# These are last, since it is nice to at least get the base system
|
||||
# rebuilt before you do them.
|
||||
.for _DIR in ${LOCAL_DIRS}
|
||||
.for _DIR in ${LOCAL_LIB_DIRS} ${LOCAL_DIRS}
|
||||
.if exists(${.CURDIR}/${_DIR}/Makefile)
|
||||
SUBDIR+= ${_DIR}
|
||||
.endif
|
||||
@ -223,9 +224,6 @@ CROSSENV= MAKEOBJDIRPREFIX=${OBJTREE} \
|
||||
MACHINE_ARCH=${TARGET_ARCH} \
|
||||
MACHINE=${TARGET} \
|
||||
CPUTYPE=${TARGET_CPUTYPE}
|
||||
.if ${OSRELDATE} < 700044
|
||||
CROSSENV+= AR=gnu-ar RANLIB=gnu-ranlib
|
||||
.endif
|
||||
.if ${MK_GROFF} != "no"
|
||||
CROSSENV+= GROFF_BIN_PATH=${WORLDTMP}/legacy/usr/bin \
|
||||
GROFF_FONT_PATH=${WORLDTMP}/legacy/usr/share/groff_font \
|
||||
@ -245,7 +243,7 @@ BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \
|
||||
SSP_CFLAGS= \
|
||||
-DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \
|
||||
-DNO_PIC -DNO_PROFILE -DNO_SHARED \
|
||||
-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF
|
||||
-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
|
||||
|
||||
# build-tools stage
|
||||
TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \
|
||||
@ -255,7 +253,7 @@ TMAKE= MAKEOBJDIRPREFIX=${OBJTREE} \
|
||||
BOOTSTRAPPING=${OSRELDATE} \
|
||||
SSP_CFLAGS= \
|
||||
-DNO_LINT \
|
||||
-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF
|
||||
-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
|
||||
|
||||
# cross-tools stage
|
||||
XMAKE= TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
|
||||
@ -265,6 +263,7 @@ XMAKE= TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
|
||||
# world stage
|
||||
WMAKEENV= ${CROSSENV} \
|
||||
_SHLIBDIRPREFIX=${WORLDTMP} \
|
||||
_LDSCRIPTROOT= \
|
||||
VERSION="${VERSION}" \
|
||||
INSTALL="sh ${.CURDIR}/tools/install.sh" \
|
||||
PATH=${TMPPATH}
|
||||
@ -307,6 +306,7 @@ LIB32FLAGS= -m32 ${LIB32CPUFLAGS} -DCOMPAT_32BIT \
|
||||
# Yes, the flags are redundant.
|
||||
LIB32WMAKEENV+= MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
|
||||
_SHLIBDIRPREFIX=${LIB32TMP} \
|
||||
_LDSCRIPTROOT=${LIB32TMP} \
|
||||
VERSION="${VERSION}" \
|
||||
INSTALL="sh ${.CURDIR}/tools/install.sh" \
|
||||
PATH=${TMPPATH} \
|
||||
@ -319,11 +319,11 @@ LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} -DNO_CPU_CFLAGS -DCOMPAT_32BIT \
|
||||
-DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO \
|
||||
-DWITHOUT_HTML -DNO_CTF -DNO_LINT -ECC -ECXX -EAS -ELD \
|
||||
DESTDIR=${LIB32TMP}
|
||||
LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*} -DNO_INCS
|
||||
LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS
|
||||
.endif
|
||||
|
||||
# install stage
|
||||
IMAKEENV= ${CROSSENV}
|
||||
IMAKEENV= ${CROSSENV:N_LDSCRIPTROOT=*}
|
||||
IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1
|
||||
.if empty(.MAKEFLAGS:M-n)
|
||||
IMAKEENV+= PATH=${STRICTTMPPATH}:${INSTALLTMP} \
|
||||
@ -488,7 +488,8 @@ build32:
|
||||
.for _dir in lib/ncurses/ncurses lib/ncurses/ncursesw lib/libmagic
|
||||
cd ${.CURDIR}/${_dir}; \
|
||||
MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} SSP_CFLAGS= DESTDIR= \
|
||||
DIRPRFX=${_dir}/ build-tools
|
||||
DIRPRFX=${_dir}/ -DNO_LINT -DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF \
|
||||
-DEARLY_BUILD build-tools
|
||||
.endfor
|
||||
cd ${.CURDIR}; \
|
||||
${LIB32WMAKE} -f Makefile.inc1 libraries
|
||||
@ -830,7 +831,7 @@ buildkernel:
|
||||
cd ${KRNLOBJDIR}/${_kernel}; \
|
||||
PATH=${BPATH}:${PATH} \
|
||||
MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \
|
||||
${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \
|
||||
${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF -DEARLY_BUILD \
|
||||
-f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile
|
||||
# XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case.
|
||||
.if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules)
|
||||
@ -838,7 +839,7 @@ buildkernel:
|
||||
cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \
|
||||
PATH=${BPATH}:${PATH} \
|
||||
MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \
|
||||
${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target}
|
||||
${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF -DEARLY_BUILD ${target}
|
||||
.endfor
|
||||
.endif
|
||||
.if !defined(NO_KERNELDEPEND)
|
||||
@ -979,8 +980,8 @@ update:
|
||||
# legacy: Build compatibility shims for the next three targets
|
||||
#
|
||||
legacy:
|
||||
.if ${BOOTSTRAPPING} < 600034 && ${BOOTSTRAPPING} != 0
|
||||
@echo "ERROR: Source upgrades from versions prior to 6.0 not supported."; \
|
||||
.if ${BOOTSTRAPPING} < 700055 && ${BOOTSTRAPPING} != 0
|
||||
@echo "ERROR: Source upgrades from versions prior to 7.0 not supported."; \
|
||||
false
|
||||
.endif
|
||||
.for _tool in tools/build
|
||||
@ -1008,7 +1009,7 @@ _gperf= gnu/usr.bin/gperf
|
||||
_groff= gnu/usr.bin/groff
|
||||
.endif
|
||||
|
||||
.if ${BOOTSTRAPPING} >= 700044 && ${BOOTSTRAPPING} < 800022
|
||||
.if ${BOOTSTRAPPING} < 800022
|
||||
_ar= usr.bin/ar
|
||||
.endif
|
||||
|
||||
@ -1022,6 +1023,9 @@ _sed= usr.bin/sed
|
||||
|
||||
.if ${BOOTSTRAPPING} < 900006
|
||||
_lex= usr.bin/lex
|
||||
.endif
|
||||
|
||||
.if ${BOOTSTRAPPING} < 1000013
|
||||
_yacc= usr.bin/yacc
|
||||
.endif
|
||||
|
||||
@ -1029,16 +1033,10 @@ _yacc= usr.bin/yacc
|
||||
_awk= usr.bin/awk
|
||||
.endif
|
||||
|
||||
.if ${MK_BSNMP} != "no" && \
|
||||
(${BOOTSTRAPPING} < 700018 || !exists(/usr/sbin/gensnmptree))
|
||||
.if ${MK_BSNMP} != "no" && !exists(/usr/sbin/gensnmptree)
|
||||
_gensnmptree= usr.sbin/bsnmpd/gensnmptree
|
||||
.endif
|
||||
|
||||
.if ${MK_RESCUE} != "no" && \
|
||||
${BOOTSTRAPPING} < 700026
|
||||
_crunchgen= usr.sbin/crunch/crunchgen
|
||||
.endif
|
||||
|
||||
.if ${MK_CLANG} != "no"
|
||||
_clang_tblgen= \
|
||||
lib/clang/libllvmsupport \
|
||||
@ -1088,12 +1086,11 @@ bootstrap-tools:
|
||||
${_mklocale} \
|
||||
usr.bin/rpcgen \
|
||||
${_sed} \
|
||||
${_lex} \
|
||||
${_yacc} \
|
||||
${_lex} \
|
||||
usr.bin/xinstall \
|
||||
${_gensnmptree} \
|
||||
usr.sbin/config \
|
||||
${_crunchgen}
|
||||
usr.sbin/config
|
||||
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
|
||||
cd ${.CURDIR}/${_tool}; \
|
||||
${MAKE} DIRPRFX=${_tool}/ obj; \
|
||||
@ -1200,7 +1197,7 @@ cross-tools:
|
||||
#
|
||||
# hierarchy - ensure that all the needed directories are present
|
||||
#
|
||||
hierarchy:
|
||||
hierarchy hier:
|
||||
cd ${.CURDIR}/etc; ${MAKE} distrib-dirs
|
||||
|
||||
#
|
||||
@ -1277,6 +1274,11 @@ _ofed_lib= contrib/ofed/usr.lib/
|
||||
.endif
|
||||
|
||||
_generic_libs= ${_cddl_lib} gnu/lib ${_kerberos5_lib} lib ${_secure_lib} usr.bin/lex/lib ${_ofed_lib}
|
||||
.for _DIR in ${LOCAL_LIB_DIRS}
|
||||
.if exists(${.CURDIR}/${_DIR}/Makefile)
|
||||
_generic_libs+= ${_DIR}
|
||||
.endif
|
||||
.endfor
|
||||
|
||||
lib/libopie__L lib/libtacplus__L: lib/libmd__L
|
||||
|
||||
@ -1649,8 +1651,8 @@ _xi-mtree:
|
||||
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
|
||||
-p ${XDDESTDIR}/usr/include >/dev/null
|
||||
|
||||
.ORDER: _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
|
||||
xdev-install: _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
|
||||
.ORDER: xdev-build _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
|
||||
xdev-install: xdev-build _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _xi-links
|
||||
|
||||
_xi-cross-tools:
|
||||
@echo "_xi-cross-tools"
|
||||
|
@ -38,6 +38,31 @@
|
||||
# xargs -n1 | sort | uniq -d;
|
||||
# done
|
||||
|
||||
# 20120621: remove old man page
|
||||
OLD_FILES+=usr/share/man/man8/vnconfig.8.gz
|
||||
# 20120613: auth.conf removed
|
||||
OLD_FILES+=etc/auth.conf
|
||||
OLD_FILES+=usr/share/examples/etc/auth.conf
|
||||
OLD_FILES+=usr/share/man/man3/auth.3.gz
|
||||
OLD_FILES+=usr/share/man/man5/auth.conf.5.gz
|
||||
# 20120530: kde pam lives now in ports
|
||||
OLD_FILES+=etc/pam.d/kde
|
||||
# 20120505: new clang import installed a redundant internal header
|
||||
OLD_FILES+=usr/include/clang/3.1/stdalign.h
|
||||
# 20120428: MD2 removed from libmd
|
||||
OLD_FILES+=usr/include/md2.h
|
||||
OLD_FILES+=usr/share/man/man3/MD2Data.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/MD2End.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/MD2File.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/MD2FileChunk.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/MD2Final.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/MD2Init.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/MD2Update.3.gz
|
||||
OLD_FILES+=usr/share/man/man3/md2.3.gz
|
||||
# 20120425: libusb version bump (r234684)
|
||||
OLD_LIBS+=usr/lib/libusb.so.2
|
||||
OLD_LIBS+=usr/lib32/libusb.so.2
|
||||
OLD_FILES+=usr/share/man/man3/libsub_get_active_config_descriptor.3.gz
|
||||
# 20120415: new clang import which bumps version from 3.0 to 3.1
|
||||
OLD_FILES+=usr/include/clang/3.0/altivec.h
|
||||
OLD_FILES+=usr/include/clang/3.0/avxintrin.h
|
||||
@ -54,6 +79,17 @@ OLD_FILES+=usr/include/clang/3.0/wmmintrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/x86intrin.h
|
||||
OLD_FILES+=usr/include/clang/3.0/xmmintrin.h
|
||||
OLD_DIRS+=usr/include/clang/3.0
|
||||
# 20120412: BIND 9.8.1 release notes removed
|
||||
OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.pdf
|
||||
OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.txt
|
||||
OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.html
|
||||
OLD_FILES+=usr/share/doc/bind9/release-notes.css
|
||||
# 20120330: legacy(4) moved to x86
|
||||
OLD_FILES+=usr/include/machine/legacyvar.h
|
||||
# 20120324: MPI headers updated
|
||||
OLD_FILES+=usr/include/dev/mpt/mpilib/mpi_inb.h
|
||||
# 20120322: hwpmc_mips24k.h removed
|
||||
OLD_FILES+=usr/include/dev/hwpmc/hwpmc_mips24k.h
|
||||
# 20120322: Update heimdal to 1.5.1.
|
||||
OLD_FILES+=usr/include/krb5-v4compat.h \
|
||||
usr/include/krb_err.h \
|
||||
@ -98,6 +134,8 @@ OLD_LIBS+=usr/lib/libasn1.so.10 \
|
||||
# 20120309: Remove fifofs header files.
|
||||
OLD_FILES+=usr/include/fs/fifofs/fifo.h
|
||||
OLD_DIRS+=usr/include/fs/fifofs
|
||||
# 20120304: xlocale cleanup
|
||||
OLD_FILES+=usr/include/_xlocale_ctype.h
|
||||
# 20120225: libarchive 3.0.3
|
||||
OLD_FILES+=usr/share/man/man3/archive_read_data_into_buffer.3.gz \
|
||||
usr/share/man/man3/archive_read_support_compression_all.3.gz \
|
||||
@ -459,7 +497,7 @@ OLD_FILES+=usr/share/man/man5/lastlog.5.gz
|
||||
OLD_FILES+=usr/share/man/man5/utmp.5.gz
|
||||
OLD_FILES+=usr/share/man/man5/wtmp.5.gz
|
||||
OLD_LIBS+=lib/libutil.so.8
|
||||
OLB_LIBS+=usr/lib32/libutil.so.8
|
||||
OLD_LIBS+=usr/lib32/libutil.so.8
|
||||
# 20100105: new userland semaphore implementation
|
||||
OLD_FILES+=usr/include/sys/semaphore.h
|
||||
# 20100103: ntptrace(8) removed
|
||||
@ -579,6 +617,7 @@ OLD_LIBS+=lib/libipx.so.4
|
||||
OLD_LIBS+=lib/libkiconv.so.3
|
||||
OLD_LIBS+=lib/libkvm.so.4
|
||||
OLD_LIBS+=lib/libmd.so.4
|
||||
OLD_LIBS+=lib/libmd.so.5
|
||||
OLD_LIBS+=lib/libncurses.so.7
|
||||
OLD_LIBS+=lib/libncursesw.so.7
|
||||
OLD_LIBS+=lib/libnvpair.so.1
|
||||
|
17
UPDATING
17
UPDATING
@ -24,6 +24,23 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10.x IS SLOW:
|
||||
disable the most expensive debugging functionality run
|
||||
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
|
||||
|
||||
20120628:
|
||||
The sort utility has been replaced with BSD sort. For now, GNU sort
|
||||
is also available as "gnusort" or the default can be set back to
|
||||
GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be
|
||||
installed as "bsdsort".
|
||||
|
||||
20120611:
|
||||
A new version of ZFS (pool version 5000) has been merged to -HEAD.
|
||||
Starting with this version the old system of ZFS pool versioning
|
||||
is superseded by "feature flags". This concept enables forward
|
||||
compatibility against certain future changes in functionality of ZFS
|
||||
pools. The first read-only compatible "feature flag" for ZFS pools
|
||||
is named "com.delphix:async_destroy". For more information
|
||||
read the new zpool-features(5) manual page.
|
||||
Please refer to the "ZFS notes" section of this file for information
|
||||
on upgrading boot ZFS pools.
|
||||
|
||||
20120417:
|
||||
The malloc(3) implementation embedded in libc now uses sources imported
|
||||
as contrib/jemalloc. The most disruptive API change is to
|
||||
|
@ -7,12 +7,12 @@ SRCS= buf.c cbc.c glbl.c io.c main.c re.c sub.c undo.c
|
||||
LINKS= ${BINDIR}/ed ${BINDIR}/red
|
||||
MLINKS= ed.1 red.1
|
||||
|
||||
.if !defined(RELEASE_CRUNCH)
|
||||
.if ${MK_OPENSSL} != "no"
|
||||
.if !defined(RELEASE_CRUNCH) && \
|
||||
${MK_OPENSSL} != "no" && \
|
||||
${MK_ED_CRYPTO} != "no"
|
||||
CFLAGS+=-DDES
|
||||
DPADD= ${LIBCRYPTO}
|
||||
LDADD= -lcrypto
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -77,7 +77,7 @@ Operators with equal precedence are grouped within symbols
|
||||
and
|
||||
.Ql } .
|
||||
.Bl -tag -width indent
|
||||
.It Ar expr1 Li | Ar expr2
|
||||
.It Ar expr1 Li \&| Ar expr2
|
||||
Return the evaluation of
|
||||
.Ar expr1
|
||||
if it is neither an empty string nor zero;
|
||||
|
@ -74,7 +74,6 @@ int to_integer(struct val *);
|
||||
void to_string(struct val *);
|
||||
int yyerror(const char *);
|
||||
int yylex(void);
|
||||
int yyparse(void);
|
||||
|
||||
%}
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd January 13, 2009
|
||||
.Dd May 11, 2012
|
||||
.Dt KENV 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -32,9 +32,9 @@
|
||||
.Nd dump or modify the kernel environment
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl hq
|
||||
.Op Fl hNq
|
||||
.Nm
|
||||
.Op Fl q
|
||||
.Op Fl qv
|
||||
.Ar variable Ns Op = Ns Ar value
|
||||
.Nm
|
||||
.Op Fl q
|
||||
@ -54,6 +54,11 @@ name is specified,
|
||||
.Nm
|
||||
will only report that value.
|
||||
If the
|
||||
.Fl N
|
||||
option is specified,
|
||||
.Nm
|
||||
will only display variable names and not their values.
|
||||
If the
|
||||
.Fl u
|
||||
option is specified,
|
||||
.Nm
|
||||
@ -68,6 +73,13 @@ If the
|
||||
option is set, warnings normally printed as a result of being unable to
|
||||
perform the requested operation will be suppressed.
|
||||
.Pp
|
||||
If the
|
||||
.Fl v
|
||||
option is set, the variable name will be printed out for the
|
||||
environment variable in addition to the value when
|
||||
.Nm
|
||||
is executed with a variable name.
|
||||
.Pp
|
||||
Variables can be added to the kernel environment using the
|
||||
.Pa /boot/loader.conf
|
||||
file, or also statically compiled into the kernel using the statement
|
||||
|
@ -42,15 +42,17 @@ static int ksetenv(char *, char *);
|
||||
static int kunsetenv(char *);
|
||||
|
||||
static int hflag = 0;
|
||||
static int Nflag = 0;
|
||||
static int qflag = 0;
|
||||
static int uflag = 0;
|
||||
static int vflag = 0;
|
||||
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
(void)fprintf(stderr, "%s\n%s\n%s\n",
|
||||
"usage: kenv [-hq]",
|
||||
" kenv [-q] variable[=value]",
|
||||
"usage: kenv [-hNq]",
|
||||
" kenv [-qv] variable[=value]",
|
||||
" kenv [-q] -u variable");
|
||||
exit(1);
|
||||
}
|
||||
@ -64,17 +66,23 @@ main(int argc, char **argv)
|
||||
error = 0;
|
||||
val = NULL;
|
||||
env = NULL;
|
||||
while ((ch = getopt(argc, argv, "hqu")) != -1) {
|
||||
while ((ch = getopt(argc, argv, "hNquv")) != -1) {
|
||||
switch (ch) {
|
||||
case 'h':
|
||||
hflag++;
|
||||
break;
|
||||
case 'N':
|
||||
Nflag++;
|
||||
break;
|
||||
case 'q':
|
||||
qflag++;
|
||||
break;
|
||||
case 'u':
|
||||
uflag++;
|
||||
break;
|
||||
case 'v':
|
||||
vflag++;
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
}
|
||||
@ -91,9 +99,9 @@ main(int argc, char **argv)
|
||||
argv++;
|
||||
argc--;
|
||||
}
|
||||
if (hflag && (env != NULL))
|
||||
if ((hflag || Nflag) && env != NULL)
|
||||
usage();
|
||||
if ((argc > 0) || (uflag && (env == NULL)))
|
||||
if (argc > 0 || ((uflag || vflag) && env == NULL))
|
||||
usage();
|
||||
if (env == NULL) {
|
||||
error = kdumpenv();
|
||||
@ -152,6 +160,9 @@ kdumpenv(void)
|
||||
if (cp == NULL)
|
||||
continue;
|
||||
*cp++ = '\0';
|
||||
if (Nflag)
|
||||
printf("%s\n", buf);
|
||||
else
|
||||
printf("%s=\"%s\"\n", buf, cp);
|
||||
buf = cp;
|
||||
}
|
||||
@ -167,6 +178,9 @@ kgetenv(char *env)
|
||||
ret = kenv(KENV_GET, env, buf, sizeof(buf));
|
||||
if (ret == -1)
|
||||
return (ret);
|
||||
if (vflag)
|
||||
printf("%s=\"%s\"\n", env, buf);
|
||||
else
|
||||
printf("%s\n", buf);
|
||||
return (0);
|
||||
}
|
||||
|
@ -1,12 +1,15 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/2/93
|
||||
# $FreeBSD$
|
||||
|
||||
.include <bsd.own.mk>
|
||||
|
||||
PROG= ls
|
||||
SRCS= cmp.c ls.c print.c util.c
|
||||
DPADD= ${LIBUTIL}
|
||||
LDADD= -lutil
|
||||
|
||||
.if !defined(RELEASE_CRUNCH)
|
||||
.if !defined(RELEASE_CRUNCH) && \
|
||||
${MK_LS_COLORS} != no
|
||||
CFLAGS+= -DCOLORLS
|
||||
DPADD+= ${LIBTERMCAP}
|
||||
LDADD+= -ltermcap
|
||||
|
@ -76,6 +76,7 @@ static VAR var[] = {
|
||||
{"comm", "COMMAND", NULL, LJUST, ucomm, 0, CHAR, NULL, 0},
|
||||
{"command", "COMMAND", NULL, COMM|LJUST|USER, command, 0,
|
||||
CHAR, NULL, 0},
|
||||
{"cow", "COW", NULL, 0, kvar, KOFF(ki_cow), UINT, "u", 0},
|
||||
{"cpu", "CPU", NULL, 0, kvar, KOFF(ki_estcpu), UINT, "d", 0},
|
||||
{"cputime", "", "time", 0, NULL, 0, CHAR, NULL, 0},
|
||||
{"egid", "", "gid", 0, NULL, 0, CHAR, NULL, 0},
|
||||
|
@ -29,7 +29,7 @@
|
||||
.\" @(#)ps.1 8.3 (Berkeley) 4/18/94
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd March 8, 2012
|
||||
.Dd May 20, 2012
|
||||
.Dt PS 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -496,6 +496,8 @@ login class
|
||||
command
|
||||
.It Cm command
|
||||
command and arguments
|
||||
.It Cm cow
|
||||
number of copy-on-write faults
|
||||
.It Cm cpu
|
||||
short-term CPU usage factor (for scheduling)
|
||||
.It Cm emul
|
||||
|
@ -116,17 +116,11 @@ The
|
||||
.Nm
|
||||
utility handles third party copies, where neither source nor target files
|
||||
are on the current machine.
|
||||
.Sh FILES
|
||||
.Bl -tag -width ".Pa /etc/auth.conf" -compact
|
||||
.It Pa /etc/auth.conf
|
||||
configure authentication services
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr cp 1 ,
|
||||
.Xr ftp 1 ,
|
||||
.Xr rlogin 1 ,
|
||||
.Xr rsh 1 ,
|
||||
.Xr auth.conf 5 ,
|
||||
.Xr hosts.equiv 5
|
||||
.Sh HISTORY
|
||||
The
|
||||
|
@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <libutil.h>
|
||||
#include <limits.h>
|
||||
#include <netdb.h>
|
||||
#include <paths.h>
|
||||
|
21
bin/rm/rm.c
21
bin/rm/rm.c
@ -301,10 +301,16 @@ rm_tree(char **argv)
|
||||
if (fflag)
|
||||
continue;
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
|
||||
case FTS_F:
|
||||
case FTS_NSOK:
|
||||
if (Pflag)
|
||||
if (!rm_overwrite(p->fts_accpath, NULL))
|
||||
if (!rm_overwrite(p->fts_accpath, p->fts_info ==
|
||||
FTS_NSOK ? NULL : p->fts_statp))
|
||||
continue;
|
||||
/* FALLTHROUGH */
|
||||
|
||||
default:
|
||||
rval = unlink(p->fts_accpath);
|
||||
if (rval == 0 || (fflag && errno == ENOENT)) {
|
||||
if (rval == 0 && vflag)
|
||||
@ -408,7 +414,7 @@ rm_file(char **argv)
|
||||
int
|
||||
rm_overwrite(char *file, struct stat *sbp)
|
||||
{
|
||||
struct stat sb;
|
||||
struct stat sb, sb2;
|
||||
struct statfs fsb;
|
||||
off_t len;
|
||||
int bsize, fd, wlen;
|
||||
@ -427,8 +433,15 @@ rm_overwrite(char *file, struct stat *sbp)
|
||||
file, sbp->st_ino);
|
||||
return (0);
|
||||
}
|
||||
if ((fd = open(file, O_WRONLY, 0)) == -1)
|
||||
if ((fd = open(file, O_WRONLY|O_NONBLOCK|O_NOFOLLOW, 0)) == -1)
|
||||
goto err;
|
||||
if (fstat(fd, &sb2))
|
||||
goto err;
|
||||
if (sb2.st_dev != sbp->st_dev || sb2.st_ino != sbp->st_ino ||
|
||||
!S_ISREG(sb2.st_mode)) {
|
||||
errno = EPERM;
|
||||
goto err;
|
||||
}
|
||||
if (fstatfs(fd, &fsb) == -1)
|
||||
goto err;
|
||||
bsize = MAX(fsb.f_iosize, 1024);
|
||||
|
@ -38,7 +38,7 @@ build-tools: mkinit mknodes mksyntax
|
||||
|
||||
.ORDER: builtins.c builtins.h
|
||||
builtins.c builtins.h: mkbuiltins builtins.def
|
||||
cd ${.CURDIR}; sh mkbuiltins ${.OBJDIR}
|
||||
sh ${.CURDIR}/mkbuiltins ${.CURDIR}
|
||||
|
||||
init.c: mkinit alias.c eval.c exec.c input.c jobs.c options.c parser.c \
|
||||
redir.c trap.c var.c
|
||||
|
@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <termios.h>
|
||||
|
||||
#include "shell.h"
|
||||
#include "options.h"
|
||||
|
@ -35,17 +35,17 @@
|
||||
# $FreeBSD$
|
||||
|
||||
temp=`/usr/bin/mktemp -t ka`
|
||||
havejobs=0
|
||||
if grep '^#define[ ]*JOBS[ ]*1' shell.h > /dev/null
|
||||
then havejobs=1
|
||||
fi
|
||||
havehist=1
|
||||
if [ "X$1" = "X-h" ]; then
|
||||
havehist=0
|
||||
shift
|
||||
fi
|
||||
objdir=$1
|
||||
exec > ${objdir}/builtins.c
|
||||
srcdir=$1
|
||||
havejobs=0
|
||||
if grep '^#define[ ]*JOBS[ ]*1' $srcdir/shell.h > /dev/null
|
||||
then havejobs=1
|
||||
fi
|
||||
exec > builtins.c
|
||||
cat <<\!
|
||||
/*
|
||||
* This file was generated by the mkbuiltins program.
|
||||
@ -57,7 +57,7 @@ cat <<\!
|
||||
|
||||
!
|
||||
awk '/^[^#]/ {if(('$havejobs' || $2 != "-j") && ('$havehist' || $2 != "-h")) \
|
||||
print $0}' builtins.def | sed 's/-[hj]//' > $temp
|
||||
print $0}' $srcdir/builtins.def | sed 's/-[hj]//' > $temp
|
||||
echo 'int (*const builtinfunc[])(int, char **) = {'
|
||||
awk '/^[^#]/ { printf "\t%s,\n", $1}' $temp
|
||||
echo '};
|
||||
@ -74,7 +74,7 @@ awk '{ for (i = 2 ; i <= NF ; i++) {
|
||||
echo ' { NULL, 0, 0 }
|
||||
};'
|
||||
|
||||
exec > ${objdir}/builtins.h
|
||||
exec > builtins.h
|
||||
cat <<\!
|
||||
/*
|
||||
* This file was generated by the mkbuiltins program.
|
||||
|
@ -375,8 +375,8 @@ The following is a list of valid operators:
|
||||
.Bl -tag -width indent
|
||||
.It Control operators:
|
||||
.Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact
|
||||
.It Li & Ta Li && Ta Li ( Ta Li ) Ta Li \en
|
||||
.It Li ;; Ta Li ;& Ta Li ; Ta Li | Ta Li ||
|
||||
.It Li & Ta Li && Ta Li \&( Ta Li \&) Ta Li \en
|
||||
.It Li ;; Ta Li ;& Ta Li \&; Ta Li \&| Ta Li ||
|
||||
.El
|
||||
.It Redirection operators:
|
||||
.Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact
|
||||
|
@ -43,7 +43,7 @@
|
||||
.Nm
|
||||
.Ar expression
|
||||
.Nm \&[
|
||||
.Ar expression Cm ]
|
||||
.Ar expression Cm \&]
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
|
@ -24,7 +24,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd September 7, 2005
|
||||
.Dd May 23, 2012
|
||||
.Dt UUIDGEN 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -52,8 +52,11 @@ instructs
|
||||
to not generate them in batch, but one at a time.
|
||||
.It Fl n
|
||||
This option controls the number of identifiers generated.
|
||||
By default, multiple
|
||||
identifiers are generated in batch.
|
||||
By default, multiple identifiers are generated in batch.
|
||||
The upper hard limit is 2048
|
||||
.Po see
|
||||
.Xr uuidgen 2
|
||||
.Pc .
|
||||
.It Fl o
|
||||
Redirect output to
|
||||
.Ar filename
|
||||
|
@ -27,11 +27,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include_next <stdlib.h>
|
||||
|
||||
#ifndef _COMPAT_OPENSOLARIS_STDLIB_H_
|
||||
#define _COMPAT_OPENSOLARIS_STDLIB_H_
|
||||
|
||||
#include_next <stdlib.h>
|
||||
|
||||
#define getexecname getprogname
|
||||
|
||||
#endif
|
||||
|
@ -45,7 +45,7 @@ devid_str_decode(char *devidstr, ddi_devid_t *retdevid, char **retminor_name)
|
||||
return (EINVAL);
|
||||
}
|
||||
*retminor_name = strdup("");
|
||||
if (*retminor_name == NULL);
|
||||
if (*retminor_name == NULL)
|
||||
return (ENOMEM);
|
||||
return (0);
|
||||
}
|
||||
|
5
cddl/contrib/dtracetoolkit/Apps/Readme
Normal file
5
cddl/contrib/dtracetoolkit/Apps/Readme
Normal file
@ -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.
|
132
cddl/contrib/dtracetoolkit/Apps/httpdstat.d
Executable file
132
cddl/contrib/dtracetoolkit/Apps/httpdstat.d
Executable file
@ -0,0 +1,132 @@
|
||||
#!/usr/sbin/dtrace -s
|
||||
/*
|
||||
* httpdstat.d - realtime httpd statistics. Uses DTrace.
|
||||
*
|
||||
* $Id: httpdstat.d 2 2007-08-01 10:01:43Z brendan $
|
||||
*
|
||||
* 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);
|
||||
}
|
102
cddl/contrib/dtracetoolkit/Apps/nfswizard.d
Executable file
102
cddl/contrib/dtracetoolkit/Apps/nfswizard.d
Executable file
@ -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 3 2007-08-01 10:50:08Z brendan $
|
||||
*
|
||||
* 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);
|
||||
}
|
268
cddl/contrib/dtracetoolkit/Apps/shellsnoop
Executable file
268
cddl/contrib/dtracetoolkit/Apps/shellsnoop
Executable file
@ -0,0 +1,268 @@
|
||||
#!/usr/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 19 2007-09-12 07:47:59Z brendan $
|
||||
#
|
||||
# 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::exec:entry, syscall::exece:entry
|
||||
/execname == "sh" || execname == "ksh" || execname == "csh" ||
|
||||
execname == "tcsh" || execname == "zsh" || execname == "bash"/
|
||||
{
|
||||
child[pid] = 1;
|
||||
|
||||
/* debug */
|
||||
this->parent = (char *)curthread->t_procp->p_parent->p_user.u_comm;
|
||||
OPT_debug == 1 ? printf("PID %d CMD %s started. (%s)\n",
|
||||
pid, execname, stringof(this->parent)) : 1;
|
||||
}
|
||||
syscall::exec:entry, syscall::exece: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::rexit:entry
|
||||
{
|
||||
child[pid] = 0;
|
||||
|
||||
/* debug */
|
||||
this->parent = (char *)curthread->t_procp->p_parent->p_user.u_comm;
|
||||
OPT_debug == 1 ? printf("PID %d CMD %s exited. (%s)\n",
|
||||
pid, execname, stringof(this->parent)) : 1;
|
||||
}
|
||||
'
|
186
cddl/contrib/dtracetoolkit/Apps/weblatency.d
Executable file
186
cddl/contrib/dtracetoolkit/Apps/weblatency.d
Executable file
@ -0,0 +1,186 @@
|
||||
#!/usr/sbin/dtrace -s
|
||||
/*
|
||||
* weblatency.d - website latency statistics.
|
||||
* Written using DTrace (Solaris 10 3/05).
|
||||
*
|
||||
* $Id: weblatency.d 3 2007-08-01 10:50:08Z brendan $
|
||||
*
|
||||
* 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);
|
||||
}
|
1
cddl/contrib/dtracetoolkit/Bin/anonpgpid.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/anonpgpid.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Mem/anonpgpid.d
|
1
cddl/contrib/dtracetoolkit/Bin/bitesize.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/bitesize.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Disk/bitesize.d
|
1
cddl/contrib/dtracetoolkit/Bin/connections
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/connections
Symbolic link
@ -0,0 +1 @@
|
||||
../Net/connections
|
1
cddl/contrib/dtracetoolkit/Bin/cpudists
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/cpudists
Symbolic link
@ -0,0 +1 @@
|
||||
../Kernel/cpudists
|
1
cddl/contrib/dtracetoolkit/Bin/cputimes
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/cputimes
Symbolic link
@ -0,0 +1 @@
|
||||
../Kernel/cputimes
|
1
cddl/contrib/dtracetoolkit/Bin/cputypes.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/cputypes.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Cpu/cputypes.d
|
1
cddl/contrib/dtracetoolkit/Bin/cpuwalk.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/cpuwalk.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Cpu/cpuwalk.d
|
1
cddl/contrib/dtracetoolkit/Bin/crash.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/crash.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Proc/crash.d
|
1
cddl/contrib/dtracetoolkit/Bin/creatbyproc.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/creatbyproc.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Proc/creatbyproc.d
|
1
cddl/contrib/dtracetoolkit/Bin/cswstat.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/cswstat.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Kernel/cswstat.d
|
1
cddl/contrib/dtracetoolkit/Bin/dappprof
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dappprof
Symbolic link
@ -0,0 +1 @@
|
||||
../Proc/dappprof
|
1
cddl/contrib/dtracetoolkit/Bin/dapptrace
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dapptrace
Symbolic link
@ -0,0 +1 @@
|
||||
../Proc/dapptrace
|
1
cddl/contrib/dtracetoolkit/Bin/dexplorer
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dexplorer
Symbolic link
@ -0,0 +1 @@
|
||||
../dexplorer
|
1
cddl/contrib/dtracetoolkit/Bin/diskhits
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/diskhits
Symbolic link
@ -0,0 +1 @@
|
||||
../Disk/diskhits
|
1
cddl/contrib/dtracetoolkit/Bin/dispqlen.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dispqlen.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Cpu/dispqlen.d
|
1
cddl/contrib/dtracetoolkit/Bin/dnlcps.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dnlcps.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Kernel/dnlcps.d
|
1
cddl/contrib/dtracetoolkit/Bin/dnlcsnoop.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dnlcsnoop.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Kernel/dnlcsnoop.d
|
1
cddl/contrib/dtracetoolkit/Bin/dnlcstat
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dnlcstat
Symbolic link
@ -0,0 +1 @@
|
||||
../Kernel/dnlcstat
|
1
cddl/contrib/dtracetoolkit/Bin/dtruss
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dtruss
Symbolic link
@ -0,0 +1 @@
|
||||
../dtruss
|
1
cddl/contrib/dtracetoolkit/Bin/dvmstat
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/dvmstat
Symbolic link
@ -0,0 +1 @@
|
||||
../dvmstat
|
1
cddl/contrib/dtracetoolkit/Bin/errinfo
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/errinfo
Symbolic link
@ -0,0 +1 @@
|
||||
../errinfo
|
1
cddl/contrib/dtracetoolkit/Bin/execsnoop
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/execsnoop
Symbolic link
@ -0,0 +1 @@
|
||||
../execsnoop
|
1
cddl/contrib/dtracetoolkit/Bin/fddist
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/fddist
Symbolic link
@ -0,0 +1 @@
|
||||
../Proc/fddist
|
1
cddl/contrib/dtracetoolkit/Bin/filebyproc.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/filebyproc.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Proc/filebyproc.d
|
1
cddl/contrib/dtracetoolkit/Bin/fspaging.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/fspaging.d
Symbolic link
@ -0,0 +1 @@
|
||||
../FS/fspaging.d
|
1
cddl/contrib/dtracetoolkit/Bin/fsrw.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/fsrw.d
Symbolic link
@ -0,0 +1 @@
|
||||
../FS/fsrw.d
|
1
cddl/contrib/dtracetoolkit/Bin/guess.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/guess.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Misc/guess.d
|
1
cddl/contrib/dtracetoolkit/Bin/hotkernel
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/hotkernel
Symbolic link
@ -0,0 +1 @@
|
||||
../hotkernel
|
1
cddl/contrib/dtracetoolkit/Bin/hotspot.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/hotspot.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Disk/hotspot.d
|
1
cddl/contrib/dtracetoolkit/Bin/hotuser
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/hotuser
Symbolic link
@ -0,0 +1 @@
|
||||
../hotuser
|
1
cddl/contrib/dtracetoolkit/Bin/httpdstat.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/httpdstat.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Apps/httpdstat.d
|
1
cddl/contrib/dtracetoolkit/Bin/icmpstat.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/icmpstat.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Net/icmpstat.d
|
1
cddl/contrib/dtracetoolkit/Bin/intbycpu.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/intbycpu.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Cpu/intbycpu.d
|
1
cddl/contrib/dtracetoolkit/Bin/intoncpu.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/intoncpu.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Cpu/intoncpu.d
|
1
cddl/contrib/dtracetoolkit/Bin/inttimes.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/inttimes.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Cpu/inttimes.d
|
1
cddl/contrib/dtracetoolkit/Bin/iofile.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/iofile.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Disk/iofile.d
|
1
cddl/contrib/dtracetoolkit/Bin/iofileb.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/iofileb.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Disk/iofileb.d
|
1
cddl/contrib/dtracetoolkit/Bin/iopattern
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/iopattern
Symbolic link
@ -0,0 +1 @@
|
||||
../iopattern
|
1
cddl/contrib/dtracetoolkit/Bin/iopending
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/iopending
Symbolic link
@ -0,0 +1 @@
|
||||
../Disk/iopending
|
1
cddl/contrib/dtracetoolkit/Bin/iosnoop
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/iosnoop
Symbolic link
@ -0,0 +1 @@
|
||||
../iosnoop
|
1
cddl/contrib/dtracetoolkit/Bin/iotop
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/iotop
Symbolic link
@ -0,0 +1 @@
|
||||
../iotop
|
1
cddl/contrib/dtracetoolkit/Bin/j_calldist.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_calldist.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_calldist.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_calls.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_calls.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_calls.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_calltime.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_calltime.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_calltime.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_classflow.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_classflow.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_classflow.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_cpudist.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_cpudist.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_cpudist.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_cputime.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_cputime.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_cputime.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_events.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_events.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_events.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_flow.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_flow.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_flow.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_flowtime.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_flowtime.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_flowtime.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_methodcalls.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_methodcalls.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_methodcalls.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_objnew.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_objnew.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_objnew.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_package.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_package.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_package.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_profile.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_profile.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_profile.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_stat.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_stat.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_stat.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_syscalls.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_syscalls.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_syscalls.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_syscolors.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_syscolors.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_syscolors.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_thread.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_thread.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_thread.d
|
1
cddl/contrib/dtracetoolkit/Bin/j_who.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/j_who.d
Symbolic link
@ -0,0 +1 @@
|
||||
../Java/j_who.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_calldist.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_calldist.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_calldist.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_calls.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_calls.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_calls.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_calltime.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_calltime.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_calltime.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_cpudist.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_cpudist.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_cpudist.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_cputime.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_cputime.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_cputime.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_execs.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_execs.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_execs.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_flow.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_flow.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_flow.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_flowinfo.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_flowinfo.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_flowinfo.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_flowtime.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_flowtime.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_flowtime.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_objcpu.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_objcpu.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_objcpu.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_objgc.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_objgc.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_objgc.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_objnew.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_objnew.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_objnew.d
|
1
cddl/contrib/dtracetoolkit/Bin/js_stat.d
Symbolic link
1
cddl/contrib/dtracetoolkit/Bin/js_stat.d
Symbolic link
@ -0,0 +1 @@
|
||||
../JavaScript/js_stat.d
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user