diff options
author | kib <kib@FreeBSD.org> | 2016-07-20 15:02:37 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2016-07-20 15:02:37 +0000 |
commit | b0424ee31b065c0390e86c0056da48d6af6092fd (patch) | |
tree | af60dcd36c8d29edccc17da766acb964f1c74500 /usr.bin/kdump | |
parent | e9d4bb286de33cda524b2ea79838257cff9889f3 (diff) | |
download | FreeBSD-src-b0424ee31b065c0390e86c0056da48d6af6092fd.zip FreeBSD-src-b0424ee31b065c0390e86c0056da48d6af6092fd.tar.gz |
MFC r302770:
Trace timeval parameters to the getitimer(2) and setitimer(2) syscalls.
Approved by: re (gjb)
Diffstat (limited to 'usr.bin/kdump')
-rw-r--r-- | usr.bin/kdump/kdump.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c index 7010bbf..8cfe540 100644 --- a/usr.bin/kdump/kdump.c +++ b/usr.bin/kdump/kdump.c @@ -109,6 +109,7 @@ void ktruser_malloc(void *); void ktruser_rtld(int, void *); void ktruser(int, void *); void ktrcaprights(cap_rights_t *); +void ktritimerval(struct itimerval *it); void ktrsockaddr(struct sockaddr *); void ktrstat(struct stat *); void ktrstruct(char *, size_t); @@ -1562,6 +1563,24 @@ ktrcaprights(cap_rights_t *rightsp) printf("\n"); } +static void +ktrtimeval(struct timeval *tv) +{ + + printf("{%ld, %ld}", (long)tv->tv_sec, tv->tv_usec); +} + +void +ktritimerval(struct itimerval *it) +{ + + printf("itimerval { .interval = "); + ktrtimeval(&it->it_interval); + printf(", .value = "); + ktrtimeval(&it->it_value); + printf(" }\n"); +} + void ktrsockaddr(struct sockaddr *sa) { @@ -1737,6 +1756,7 @@ ktrstruct(char *buf, size_t buflen) size_t namelen, datalen; int i; cap_rights_t rights; + struct itimerval it; struct stat sb; struct sockaddr_storage ss; @@ -1761,6 +1781,11 @@ ktrstruct(char *buf, size_t buflen) goto invalid; memcpy(&rights, data, datalen); ktrcaprights(&rights); + } else if (strcmp(name, "itimerval") == 0) { + if (datalen != sizeof(struct itimerval)) + goto invalid; + memcpy(&it, data, datalen); + ktritimerval(&it); } else if (strcmp(name, "stat") == 0) { if (datalen != sizeof(struct stat)) goto invalid; |