15bf5ca77SDevin Teske# -*- tab-width: 4 -*- ;; Emacs 25bf5ca77SDevin Teske# vi: set filetype=sh tabstop=8 shiftwidth=8 noexpandtab :: Vi/ViM 35bf5ca77SDevin Teske############################################################ IDENT(1) 45bf5ca77SDevin Teske# 55bf5ca77SDevin Teske# $Title: dwatch(8) module for nanosleep(2) [or similar] entry $ 65bf5ca77SDevin Teske# $Copyright: 2014-2018 Devin Teske. All rights reserved. $ 75bf5ca77SDevin Teske# 85bf5ca77SDevin Teske############################################################ DESCRIPTION 95bf5ca77SDevin Teske# 105bf5ca77SDevin Teske# Print arguments being passed to nanosleep(2) [or similar] 115bf5ca77SDevin Teske# 125bf5ca77SDevin Teske############################################################ PROBE 135bf5ca77SDevin Teske 145bf5ca77SDevin Teske: ${PROBE:=syscall::$PROFILE:entry} 155bf5ca77SDevin Teske 165bf5ca77SDevin Teske############################################################ ACTIONS 175bf5ca77SDevin Teske 185bf5ca77SDevin Teskeexec 9<<EOF 195bf5ca77SDevin Teskethis struct timespec * rqtp; 205bf5ca77SDevin Teskethis time_t requested_sec; 215bf5ca77SDevin Teskethis long requested_nsec; 225bf5ca77SDevin Teske 235bf5ca77SDevin Teske$PROBE /* probe ID $ID */ 245bf5ca77SDevin Teske{${TRACE:+ 255bf5ca77SDevin Teske print("<$ID>"); 265bf5ca77SDevin Teske} 275bf5ca77SDevin Teske /* 285bf5ca77SDevin Teske * const struct timespec * 295bf5ca77SDevin Teske */ 305bf5ca77SDevin Teske this->rqtp = (struct timespec *)copyin(arg0, sizeof(struct timespec)); 315bf5ca77SDevin Teske this->requested_sec = (time_t)this->rqtp->tv_sec; 325bf5ca77SDevin Teske this->requested_nsec = (long)this->rqtp->tv_nsec; 335bf5ca77SDevin Teske} 345bf5ca77SDevin TeskeEOF 355bf5ca77SDevin TeskeACTIONS=$( cat <&9 ) 365bf5ca77SDevin TeskeID=$(( $ID + 1 )) 375bf5ca77SDevin Teske 385bf5ca77SDevin Teske############################################################ EVENT DETAILS 395bf5ca77SDevin Teske 40*a061d970SDevin Teskeif [ ! "$CUSTOM_DETAILS" ]; then 415bf5ca77SDevin Teskeexec 9<<EOF 425bf5ca77SDevin Teske /* 435bf5ca77SDevin Teske * Dump nanosleep(2) arguments 445bf5ca77SDevin Teske */ 455bf5ca77SDevin Teske printf("%d.%d seconds", 465bf5ca77SDevin Teske this->requested_sec, this->requested_nsec / 100000); 475bf5ca77SDevin TeskeEOF 485bf5ca77SDevin TeskeEVENT_DETAILS=$( cat <&9 ) 49*a061d970SDevin Teskefi 505bf5ca77SDevin Teske 515bf5ca77SDevin Teske################################################################################ 525bf5ca77SDevin Teske# END 535bf5ca77SDevin Teske################################################################################ 54