mirror of
https://github.com/opnsense/src.git
synced 2026-04-03 16:35:27 -04:00
This allows quick changes to the formatted output of a profile. Sponsored by: Smule, Inc.
54 lines
1.4 KiB
Bash
54 lines
1.4 KiB
Bash
# -*- 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
|
|
|
|
if [ ! "$CUSTOM_DETAILS" ]; then
|
|
exec 9<<EOF
|
|
/*
|
|
* Dump nanosleep(2) arguments
|
|
*/
|
|
printf("%d.%d seconds",
|
|
this->requested_sec, this->requested_nsec / 100000);
|
|
EOF
|
|
EVENT_DETAILS=$( cat <&9 )
|
|
fi
|
|
|
|
################################################################################
|
|
# END
|
|
################################################################################
|