This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Here's a patch to add a few of the missing system calls. Unless somebody beats me to it I'll try to add the other missing *at functions when I have a bit more time. -- â Ulrich Drepper â Red Hat, Inc. â 444 Castro St â Mountain View, CA â
--- ./tapset/syscalls2.stp-save 2007-09-22 15:01:04.000000000 -0700
+++ ./tapset/syscalls2.stp 2007-09-22 16:33:29.000000000 -0700
@@ -121,6 +121,42 @@
retstr = returnstr(1)
}
+
+# openat _______________________________________________________
+# long sys_openat(int dfd, const char __user * filename, int flags, int mode)
+probe syscall.openat =
+ kernel.function("sys_openat") ?,
+ kernel.function("compat_sys_openat") ?
+{
+ name = "openat"
+ dfd = $dfd
+ filename = user_string($filename)
+ flags = $flags
+ mode = $mode
+ if (flags & 64) {
+ if (dfd == -100)
+ argstr = sprintf("AT_FDCWD, %s, %s, %#o", user_string_quoted($filename),
+ _sys_open_flag_str(flags), $mode)
+ else
+ argstr = sprintf("%d, %s, %s, %#o", dfd, user_string_quoted($filename),
+ _sys_open_flag_str(flags), $mode)
+ } else {
+ if (dfd == -100)
+ argstr = sprintf("AT_FDCWD, %s, %s", user_string_quoted($filename),
+ _sys_open_flag_str(flags))
+ else
+ argstr = sprintf("%d, %s, %s", dfd, user_string_quoted($filename),
+ _sys_open_flag_str(flags))
+ }
+}
+probe syscall.openat.return =
+ kernel.function("sys_openat").return ?,
+ kernel.function("compat_sys_openat").return ?
+{
+ name = "openat"
+ retstr = returnstr(1)
+}
+
# pause ______________________________________________________
#
# sys_pause(void)
@@ -409,6 +445,7 @@
name = "readahead"
retstr = returnstr(1)
}
+
# readlink ___________________________________________________
#
# long sys_readlink(const char __user * path,
@@ -428,6 +465,30 @@
retstr = returnstr(1)
}
+# readlinkat ___________________________________________________
+#
+# long sys_readlinkat(int dfd, const char __user * path,
+# char __user * buf,
+# int bufsiz)
+#
+probe syscall.readlinkat = kernel.function("sys_readlinkat") {
+ name = "readlinkat"
+ dfd = $dfd
+ path = user_string($path)
+ buf_uaddr = $buf
+ bufsiz = $bufsiz
+ if (dfd == -100)
+ argstr = sprintf("AT_FDCWD, %s, %p, %d", user_string_quoted($path),
+ buf_uaddr, bufsiz)
+ else
+ argstr = sprintf("%d, %s, %p, %d", dfd, user_string_quoted($path),
+ buf_uaddr, bufsiz)
+}
+probe syscall.readlinkat.return = kernel.function("sys_readlinkat").return {
+ name = "readlinkat"
+ retstr = returnstr(1)
+}
+
# readv ______________________________________________________
#
# ssize_t sys_readv(unsigned long fd,
Attachment:
signature.asc
Description: OpenPGP digital signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |