diff options
author | hien <hien> | 2006-03-02 19:24:41 +0000 |
---|---|---|
committer | hien <hien> | 2006-03-02 19:24:41 +0000 |
commit | ace00081c139d99e0229bb62534dfc6ba3a2bb02 (patch) | |
tree | 272a1f9bb3c95c981d37a2b9fdb3b56835446550 | |
parent | 973efde0514e6a10d86ccdeeb338c3549d2786fd (diff) | |
download | systemtap-steved-ace00081c139d99e0229bb62534dfc6ba3a2bb02.tar.gz systemtap-steved-ace00081c139d99e0229bb62534dfc6ba3a2bb02.tar.xz systemtap-steved-ace00081c139d99e0229bb62534dfc6ba3a2bb02.zip |
Added
_struct_itimerspec_u
-rw-r--r-- | tapset/aux_syscalls.stp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index e9d01bb1..e9b8e1d1 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -75,6 +75,23 @@ function _struct_timespec:string(addr:long) } %} +function _struct_itimerspec_u:string(uaddr:long) +%{ + struct itimerspec its; + char *ptr = (char *)(unsigned long)THIS->uaddr; + + if (ptr == NULL) + strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN); + else { + if(_stp_copy_from_user((char *)&its, ptr,sizeof(struct itimerspec))) + strlcpy (THIS->__retvalue, "UNKNOWN", MAXSTRINGLEN); + else + snprintf(THIS->__retvalue, MAXSTRINGLEN, "[%d.%06d,%d.%06d]", + (int)its.it_interval.tv_sec, (int)its.it_interval.tv_nsec, + (int)its.it_value.tv_sec, (int)its.it_value.tv_nsec); + } +%} + function _struct_itimerval_u:string(uaddr:long) %{ struct itimerval itv; |