Changeset View
Changeset View
Standalone View
Standalone View
cddl/usr.sbin/dwatch/libexec/nanosleep
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:keywords | null | FreeBSD=%H \ No newline at end of property \ No newline at end of property |
# -*- tab-width: 4 -*- ;; Emacs | |||||
# vi: set filetype=sh tabstop=8 shiftwidth=8 noexpandtab :: Vi/ViM | |||||
############################################################ IDENT(1) | |||||
# | |||||
# $Title: dwatch(8) module for nanosleep(2) [or similar] entry $ | |||||
# $Copyright: 2014-2018 Devin Teske. All rights reserved. $ | |||||
# $FreeBSD$ | |||||
# | |||||
############################################################ DESCRIPTION | |||||
# | |||||
# Print arguments being passed to nanosleep(2) [or similar] | |||||
# | |||||
############################################################ PROBE | |||||
: ${PROBE:=syscall::$PROFILE:entry} | |||||
############################################################ ACTIONS | |||||
exec 9<<EOF | |||||
this struct timespec * rqtp; | |||||
this time_t requested_sec; | |||||
this long requested_nsec; | |||||
$PROBE /* probe ID $ID */ | |||||
{${TRACE:+ | |||||
print("<$ID>"); | |||||
} | |||||
/* | |||||
* const struct timespec * | |||||
*/ | |||||
this->rqtp = (struct timespec *)copyin(arg0, sizeof(struct timespec)); | |||||
this->requested_sec = (time_t)this->rqtp->tv_sec; | |||||
this->requested_nsec = (long)this->rqtp->tv_nsec; | |||||
} | |||||
EOF | |||||
ACTIONS=$( cat <&9 ) | |||||
ID=$(( $ID + 1 )) | |||||
############################################################ EVENT DETAILS | |||||
exec 9<<EOF | |||||
/* | |||||
* Dump nanosleep(2) arguments | |||||
*/ | |||||
printf("%d.%d seconds", | |||||
this->requested_sec, this->requested_nsec / 100000); | |||||
EOF | |||||
EVENT_DETAILS=$( cat <&9 ) | |||||
################################################################################ | |||||
# END | |||||
################################################################################ |