summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2007-08-23 13:05:49 +0000
committerhunt <hunt>2007-08-23 13:05:49 +0000
commit9f2b0838826bf99b2f9a3e2c1b0b323021ebfdfe (patch)
treef427e23d823d349c46080cc57b44d8e8be88a1f2
parentfdbfa748f504c68c94e8e1101b57e71d53f9275e (diff)
downloadsystemtap-steved-9f2b0838826bf99b2f9a3e2c1b0b323021ebfdfe.tar.gz
systemtap-steved-9f2b0838826bf99b2f9a3e2c1b0b323021ebfdfe.tar.xz
systemtap-steved-9f2b0838826bf99b2f9a3e2c1b0b323021ebfdfe.zip
2007-08-23 Martin Hunt <hunt@redhat.com>
From Cai Fei <caifei@cn.fujitsu.com> * aux_syscalls.stp (_waitid_opt_str): New. (_wait4_opt_str): Just handle wait4 options. * syscalls2.stp (sys_waitid): Use _waitid_opt_str.
-rw-r--r--tapset/ChangeLog6
-rw-r--r--tapset/aux_syscalls.stp8
-rw-r--r--tapset/syscalls2.stp13
3 files changed, 21 insertions, 6 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index 9ee91cd0..df98fc12 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-23 Martin Hunt <hunt@redhat.com>
+ From Cai Fei <caifei@cn.fujitsu.com>
+ * aux_syscalls.stp (_waitid_opt_str): New.
+ (_wait4_opt_str): Just handle wait4 options.
+ * syscalls2.stp (sys_waitid): Use _waitid_opt_str.
+
2007-08-23 Wenji Huang <wenji.huang@oracle.com>
* rpc.stp (sunrpc.svc.process, sunrpc.svc.recv): Modify evaluating
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 3fb65c1c..3e31ffbc 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1085,6 +1085,14 @@ function _msync_flag_str(f) {
/* `man wait4` for more information */
function _wait4_opt_str(f) {
+ if(f & 8) bs="WCONTINUED|".bs
+ if(f & 2) bs="WUNTRACED|".bs
+ if(f & 1) bs="WNOHANG|".bs
+ return substr(bs,0,strlen(bs)-1)
+}
+
+/* `man waitid` for more information */
+function _waitid_opt_str(f) {
if(f & 0x01000000) bs="WNOWAIT|".bs
if(f & 8) bs="WCONTINUED|".bs
if(f & 4) bs="WEXITED|".bs
diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp
index be33be58..0c83b271 100644
--- a/tapset/syscalls2.stp
+++ b/tapset/syscalls2.stp
@@ -3009,10 +3009,10 @@ probe syscall.waitid = kernel.function("sys_waitid") {
pid = $pid
infop_uaddr = $infop
options = $options
- options_str = _wait4_opt_str($options)
+ options_str = _waitid_opt_str($options)
rusage_uaddr = $ru
argstr = sprintf("%d, %d, %p, %s, %p", $which, $pid,
- $infop, _wait4_opt_str($options), $ru)
+ $infop, _waitid_opt_str($options), $ru)
}
probe syscall.waitid.return = kernel.function("sys_waitid").return {
name = "waitid"
@@ -3021,8 +3021,7 @@ probe syscall.waitid.return = kernel.function("sys_waitid").return {
/* FIXME:
# waitpid ____________________________________________________
#
-# asmlinkage long
-# sys_wait4(pid_t pid,
+# long sys_wait4(pid_t pid,
# int __user *stat_addr,
# int options,
# struct rusage __user *ru)
@@ -3034,14 +3033,15 @@ probe syscall.waitpid = kernel.function("sys_wait4") {
options = $options
options_str = _wait4_opt_str($options)
rusage_uaddr = $ru
- argstr = sprintf("%d, %p, %s, %p", $pid, status_uaddr,
- options_str, rusage_uaddr)
+ argstr = sprintf("%d, %p, %s, %p", $pid, $stat_addr,
+ options_str, $ru)
}
probe syscall.waitpid.return = kernel.function("sys_wait4").return {
name = "waitpid"
retstr = returnstr(1)
}
*/
+
# write ______________________________________________________
#
# ssize_t sys_write(unsigned int fd,
@@ -3059,6 +3059,7 @@ probe syscall.write.return = kernel.function("sys_write").return {
name = "write"
retstr = returnstr(1)
}
+
# writev _____________________________________________________
#
# ssize_t sys_writev(unsigned long fd,