summaryrefslogtreecommitdiffstats
path: root/tapset/syscalls.stp
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/syscalls.stp')
-rw-r--r--tapset/syscalls.stp2417
1 files changed, 2417 insertions, 0 deletions
diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp
new file mode 100644
index 00000000..b865099e
--- /dev/null
+++ b/tapset/syscalls.stp
@@ -0,0 +1,2417 @@
+// syscalls tapset part 1 [A-M]
+// Copyright (C) 2005 IBM Corp.
+// Copyright (C) 2005, 2006 Red Hat Inc.
+//
+// This file is part of systemtap, and is free software. You can
+// redistribute it and/or modify it under the terms of the GNU General
+// Public License (GPL); either version 2, or (at your option) any
+// later version.
+
+/* Each syscall returns the calls parameters. In addition, the following
+* variables are set:
+*
+* name - generally the syscall name minus the "sys_".
+*
+* argstr - a string containing the decoded args in an easy-to-read format.
+* It doesn't need to contain everything, but should have all the
+* important args.
+*
+* returnp - set to 1 if return probe
+*/
+
+# accept _____________________________________________________
+# long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr,
+# int __user *upeer_addrlen)
+probe syscall.accept = kernel.function("sys_accept") {
+ name = "accept"
+ s = $fd
+ addr_uaddr = $upeer_sockaddr
+ addrlen_uaddr = $upeer_addrlen
+ argstr = string(s)
+}
+probe syscall.accept.return = kernel.function("sys_accept").return {
+ name = "accept"
+ returnp = 1
+}
+
+# access _____________________________________________________
+# long sys_access(const char __user * filename, int mode)
+probe syscall.access = kernel.function("sys_access") {
+ name = "access"
+ pathname = user_string($filename)
+ mode = $mode
+ mode_str = _access_mode_str($mode)
+ argstr = sprintf("\"%s\", %s", pathname, mode_str)
+}
+probe syscall.access.return = kernel.function("sys_access").return {
+ name = "access"
+ returnp = 1
+}
+
+# acct _______________________________________________________
+# long sys_acct(const char __user *name)
+probe syscall.acct = kernel.function("sys_acct") {
+ name = "acct"
+ filename = user_string($name)
+ argstr = filename
+}
+probe syscall.acct.return = kernel.function("sys_acct").return {
+ name = "acct"
+ returnp = 1
+}
+
+# add_key ____________________________________________________
+# long sys_add_key(const char __user *_type,
+# const char __user *_description,
+# const void __user *_payload,
+# size_t plen,
+# key_serial_t ringid)
+probe syscall.add_key = kernel.function("sys_add_key") {
+ name = "add_key"
+ type_uaddr = $_type
+ description_auddr = $_description
+ payload_uaddr = $_payload
+ plen = $plen
+ ringid = $ringid
+ argstr = "add_key"
+}
+probe syscall.add_key.return = kernel.function("sys_add_key").return {
+ name = "add_key"
+ returnp = 1
+}
+
+# adjtimex ___________________________________________________
+# long sys_adjtimex(struct timex __user *txc_p)
+probe syscall.adjtimex = kernel.function("sys_adjtimex") {
+ name = "adjtimex"
+ buf_uaddr = $txc_p
+ /*
+ * buf_modes = __uget_timex_m($txc_p,0)
+ */
+ buf_modes_str = _adjtx_mode_str(buf_modes)
+ /*
+ * buf_offset = __uget_timex_m($txc_p,1)
+ * buf_freq = __uget_timex_m($txc_p,2)
+ * buf_maxerror = __uget_timex_m($txc_p,3)
+ * buf_esterror = __uget_timex_m($txc_p,4)
+ * buf_status = __uget_timex_m($txc_p,5)
+ * buf_constant = __uget_timex_m($txc_p,6)
+ * buf_precision = __uget_timex_m($txc_p,7)
+ * buf_tolerance = __uget_timex_m($txc_p,8)
+ * buf_time_tv_sec = __uget_timex_m($txc_p,9)
+ * buf_time_tv_usec = __uget_timex_m($txc_p,10)
+ * buf_tick = __uget_timex_m($txc_p,11)
+ */
+ argstr = buf_modes_str
+}
+probe syscall.adjtimex.return = kernel.function("sys_adjtimex").return {
+ name = "adjtimex"
+ returnp = 1
+}
+
+# alarm ______________________________________________________
+# unsigned long sys_alarm (unsigned int seconds)
+probe syscall.alarm = kernel.function("sys_alarm") {
+ name = "alarm"
+ seconds = $seconds
+ argstr = string($seconds)
+}
+probe syscall.alarm.return = kernel.function("sys_alarm").return {
+ name = "alarm"
+ returnp = 1
+}
+
+# bdflush ____________________________________________________
+# long sys_bdflush(int func,long data)
+probe syscall.bdflush = kernel.function("sys_bdflush") {
+ name = "bdflush"
+ func = $func
+ data = $data
+ argstr = sprintf("%d 0x%x",func, data)
+}
+probe syscall.bdflush.return = kernel.function("sys_bdflush").return {
+ name = "bdflush"
+ returnp = 1
+}
+
+# bind _______________________________________________________
+# long sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen)
+probe syscall.bind = kernel.function("sys_bind") {
+ name = "bind"
+ sockfd = $fd
+ my_addr_uaddr = $umyaddr
+ addrlen = $addrlen
+// fixme
+ argstr = string($fd)
+}
+probe syscall.bind.return = kernel.function("sys_bind").return {
+ name = "bind"
+ returnp = 1
+}
+
+# brk ________________________________________________________
+# unsigned long sys_brk(unsigned long brk)
+probe syscall.brk = kernel.function("sys_brk") {
+ name = "brk"
+ brk = $brk
+ argstr = sprintf("0x%x", brk)
+}
+probe syscall.brk.return = kernel.function("sys_brk").return {
+ name = "brk"
+ returnp = 1
+}
+
+# capget _____________________________________________________
+/*
+ * NOTE
+ * this is probably not a good function
+ * to probe. The structures are always
+ * changing. It also seems like it is
+ * not really used. Cscope produced no
+ * reference of this function in the
+ * kernel (returned no callers). Perhaps
+ * cap_get_proc / cap_set_proc are better
+ * functions to export.
+ */
+/*
+ * asmlinkage long
+ * sys_capget(cap_user_header_t header,
+ * cap_user_data_t dataptr)
+ */
+probe kernel.syscall.capget =
+ kernel.function("sys_capget") {
+ name = "capget"
+ header_uaddr = $header
+ data_uaddr = $dataptr
+ /*
+ * NOTE
+ * These two functions are the raw kernel
+ * interface for getting and setting
+ * capabilities. The kernel API is likely
+ * to change and use of these functions (in
+ * particular the format of the cap_user_*_t
+ * types) is subject to change with each
+ * kernel revision.
+ */
+ }
+probe kernel.syscall.capget.return =
+ kernel.function("sys_capget").return {
+ name = "capget.return"
+ }
+# capset _____________________________________________________
+/*
+ * NOTE
+ * this is probably not a good function
+ * to probe. The structures are always
+ * changing. It also seems like it is
+ * not really used. Cscope produced no
+ * reference of this function in the
+ * kernel (returned no callers). Perhaps
+ * cap_get_proc / cap_set_proc are better
+ * functions to export.
+ */
+/*
+ * asmlinkage long
+ * sys_capset(cap_user_header_t header,
+ * const cap_user_data_t data)
+ */
+probe kernel.syscall.capset =
+ kernel.function("sys_capset") {
+ name = "capset"
+ header_uaddr = $header
+ data_uaddr = $data
+ /*
+ * NOTE
+ * These two functions are the raw kernel
+ * interface for getting and setting
+ * capabilities. The kernel API is likely
+ * to change and use of these functions (in
+ * particular the format of the cap_user_*_t
+ * types) is subject to change with each
+ * kernel revision.
+ *
+ * These system calls are specific to Linux.
+ * The portable interfaces are cap_set_proc
+ * and cap_get_proc.
+ */
+ }
+probe kernel.syscall.capset.return =
+ kernel.function("sys_capset").return {
+ name = "capset.return"
+ }
+# chdir ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_chdir(const char __user * filename)
+ */
+probe kernel.syscall.chdir =
+ kernel.function("sys_chdir") {
+ name = "chdir"
+ path_uaddr = $filename
+ }
+probe kernel.syscall.chdir.return =
+ kernel.function("sys_chdir").return {
+ name = "chdir.return"
+ }
+# chmod ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_chmod(const char __user * filename,
+ * mode_t mode)
+ */
+probe kernel.syscall.chmod =
+ kernel.function("sys_chmod") {
+ name = "chmod"
+ path_uaddr = $filename
+ mode = $mode
+ mode_str = _sys_open_mode_str($mode)
+ }
+probe kernel.syscall.chmod.return =
+ kernel.function("sys_chmod").return {
+ name = "chmod.return"
+ }
+# chown ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_chown(const char __user * filename,
+ * uid_t user,
+ * gid_t group)
+ */
+probe kernel.syscall.chown =
+ kernel.function("sys_chown") {
+ name = "chown"
+ path_uaddr = $filename
+ owner = $user
+ group = $group
+ }
+probe kernel.syscall.chown.return =
+ kernel.function("sys_chown").return {
+ name = "chown.return"
+ }
+# chown16 ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_chown16(const char __user * filename,
+ * old_uid_t user,
+ * old_gid_t group)
+ */
+probe kernel.syscall.chown16 =
+ kernel.function("sys_chown") {
+ name = "chown16"
+ path_uaddr = $filename
+ owner = $user
+ group = $group
+ }
+probe kernel.syscall.chown16.return =
+ kernel.function("sys_chown").return {
+ name = "chown16.return"
+ }
+# chroot _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_chroot(const char __user * filename)
+ */
+probe kernel.syscall.chroot =
+ kernel.function("sys_chroot") {
+ name = "chroot"
+ path_uaddr = $filename
+ }
+probe kernel.syscall.chroot.return =
+ kernel.function("sys_chroot").return {
+ name = "chroot.return"
+ }
+# clock_getres _______________________________________________
+/*
+ * asmlinkage long
+ * sys_clock_getres(clockid_t which_clock,
+ * struct timespec __user *tp)
+ */
+probe kernel.syscall.clock_getres =
+ kernel.function("sys_clock_getres") {
+ name = "clock_getres"
+ clk_id = $which_clock
+ clk_id_str = _get_wc_str($which_clock)
+ res_uaddr = $tp
+ }
+probe kernel.syscall.clock_getres.return =
+ kernel.function("sys_clock_getres").return {
+ name = "clock_getres.return"
+ }
+# clock_gettime ______________________________________________
+/*
+ * asmlinkage long
+ * sys_clock_gettime(clockid_t which_clock,
+ * struct timespec __user *tp)
+ */
+probe kernel.syscall.clock_gettime =
+ kernel.function("sys_clock_gettime") {
+ name = "clock_gettime"
+ clk_id = $which_clock
+ clk_id_str = _get_wc_str($which_clock)
+ tp_uaddr = $tp
+}
+probe kernel.syscall.clock_gettime.return =
+ kernel.function("sys_clock_gettime").return {
+ name = "clock_gettime.return"
+ }
+# clock_nanosleep ____________________________________________
+/*
+ * asmlinkage long
+ * sys_clock_nanosleep(clockid_t which_clock,
+ * int flags,
+ * const struct timespec __user *rqtp,
+ * struct timespec __user *rmtp)
+ */
+probe kernel.syscall.clock_nanosleep =
+ kernel.function("sys_clock_nanosleep") {
+ name = "clock_nanosleep"
+ clock_id = $which_clock
+ clock_id_str = _get_wc_str($which_clock)
+ flags = $flags
+ flag_str = "TIMER_ABSTIME"
+ rqtp_uaddr = $rqtp
+ rmtp_uaddr = $rmtp
+ }
+probe kernel.syscall.clock_nanosleep.return =
+ kernel.function("sys_clock_nanosleep").return {
+ name = "clock_nanosleep.return"
+ }
+# clock_settime ______________________________________________
+/*
+ * asmlinkage long
+ * sys_clock_settime(clockid_t which_clock,
+ * const struct timespec __user *tp)
+ */
+probe kernel.syscall.clock_settime =
+ kernel.function("sys_clock_settime") {
+ name = "clock_settime"
+ clk_id = $which_clock
+ clk_id_str = _get_wc_str($which_clock)
+ tp_uaddr = $tp
+ }
+probe kernel.syscall.clock_settime.return =
+ kernel.function("sys_clock_settime").return {
+ name = "clock_settime.return"
+ }
+# clone ______________________________________________________
+/*
+ * asmlinkage long
+ * do_fork(unsigned long clone_flags,
+ * unsigned long stack_start,
+ * struct pt_regs *regs,
+ * unsigned long stack_size,
+ * int __user *parent_tidptr,
+ * int __user *child_tidptr)
+ */
+probe kernel.syscall.clone =
+ kernel.function("do_fork") {
+ name = "clone"
+ clone_flags = $clone_flags
+ /*
+ * unable to find local 'start_stack' (maybe i386 specific)
+ * start_stack = $start_stack
+ */
+ regs_uaddr = $regs
+ stack_size = $stack_size
+ parent_tid_uaddr = $parent_tidptr
+ child_tid_uaddr = $child_tidptr
+ }
+probe kernel.syscall.clone.return =
+ kernel.function("do_fork").return {
+ name = "clone.return"
+ }
+# close ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_close(unsigned int fd)
+ */
+probe kernel.syscall.close =
+ kernel.function("sys_close") {
+ name = "close"
+ fd = $fd
+}
+probe kernel.syscall.close.return =
+ kernel.function("sys_close").return {
+ name = "close.return"
+ }
+# connect ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_connect(int fd,
+ * struct sockaddr __user *uservaddr,
+ * int addrlen)
+ */
+probe kernel.syscall.connect =
+ kernel.function("sys_connect") {
+ name = "connect"
+ sockfd = $fd
+ serv_addr_uaddr = $uservaddr
+ addrlen = $addrlen
+}
+probe kernel.syscall.connect.return =
+ kernel.function("sys_connect").return {
+ name = "connect.return"
+ }
+# creat ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_creat(const char __user * pathname,
+ * int mode)
+ */
+probe kernel.syscall.creat =
+ kernel.function("sys_open") {
+ name = "creat"
+ pathname_uaddr = $filename
+ mode = $mode
+ mode_str = _sys_open_mode_str($mode)
+ }
+probe kernel.syscall.creat.return =
+ kernel.function("sys_open").return {
+ name = "creat.return"
+ }
+# delete_module ______________________________________________
+/*
+ * asmlinkage long
+ * sys_delete_module(const char __user *name_user,
+ * unsigned int flags)
+ */
+probe kernel.syscall.delete_module =
+ kernel.function("sys_delete_module") {
+ name = "delete_module"
+ name_user_uaddr = $name_user
+ flags = $flags
+ flags_str = _module_flags_str($flags)
+ }
+probe kernel.syscall.delete_module.return =
+ kernel.function("sys_delete_module").return {
+ name = "delete_module.return"
+ }
+# dup ________________________________________________________
+/*
+ * asmlinkage long
+ * sys_dup(unsigned int fildes)
+ */
+probe kernel.syscall.dup =
+ kernel.function("sys_dup") {
+ name = "dup"
+ oldfd = $fildes
+ }
+probe kernel.syscall.dup.return =
+ kernel.function("sys_dup").return {
+ name = "dup.return"
+ }
+# dup2 _______________________________________________________
+/*
+ * asmlinkage long
+ * sys_dup2(unsigned int oldfd,
+ * unsigned int newfd)
+ */
+probe kernel.syscall.dup2 =
+ kernel.function("sys_dup2") {
+ name = "dup2"
+ oldfd = $oldfd
+ newfd = $newfd
+ }
+probe kernel.syscall.dup2.return =
+ kernel.function("sys_dup2").return {
+ name = "dup2.return"
+ }
+# epoll_create _______________________________________________
+/*
+ * asmlinkage long
+ * sys_epoll_create(int size)
+ */
+probe kernel.syscall.epoll_create =
+ kernel.function("sys_epoll_create") {
+ name = "epoll_create"
+ size = $size
+ }
+probe kernel.syscall.epoll_create.return =
+ kernel.function("sys_epoll_create").return {
+ name = "epoll_create.return"
+ }
+# epoll_ctl __________________________________________________
+/*
+ * asmlinkage long
+ * sys_epoll_ctl(int epfd,
+ * int op,
+ * int fd,
+ * struct epoll_event __user *event)
+ */
+probe kernel.syscall.epoll_ctl =
+ kernel.function("sys_epoll_ctl") {
+ name = "epoll_ctl"
+ epfd = $epfd
+ op = $op
+ op_str = _opoll_op_str($op)
+ fd = $fd
+ event_uaddr = $event
+ }
+probe kernel.syscall.epoll_ctl.return =
+ kernel.function("sys_epoll_ctl").return {
+ name = "epoll_ctl.return"
+ }
+# epoll_wait _________________________________________________
+/*
+ * asmlinkage long
+ * sys_epoll_wait(int epfd,
+ * struct epoll_event __user *events,
+ * int maxevents,
+ * int timeout)
+ */
+probe kernel.syscall.epoll_wait =
+ kernel.function("sys_epoll_wait") {
+ name = "epoll_wait"
+ epfd = $epfd
+ events_uaddr = $events
+ maxevents = $maxevents
+ timeout = $timeout
+ }
+probe kernel.syscall.epoll_wait.return =
+ kernel.function("sys_epoll_wait").return {
+ name = "epoll_wait.return"
+ }
+
+# execve _____________________________________________________
+# int sys_execve(struct pt_regs regs)
+probe syscall.execve = kernel.function("sys_execve") {
+ name = "execve"
+ /*
+ * unsupported type identifier '$regs'
+ * regs = $regs
+ */
+}
+# v2.6.15-rc2 or earlier has problems
+probe syscall.execve.return = kernel.function("sys_execve").return {
+ name = "execve"
+ returnp = 1
+}
+
+# exit _______________________________________________________
+# long sys_exit(int error_code)
+probe syscall.exit = kernel.function("do_exit") {
+ name = "exit"
+ status = $code
+ argstr = string($code)
+}
+probe syscall.exit.return = kernel.function("do_exit").return {
+ name = "exit"
+ returnp = 1
+}
+
+# exit_group _________________________________________________
+/*
+ * asmlinkage void
+ * sys_exit_group(int error_code)
+ */
+probe kernel.syscall.exit_group =
+ kernel.function("sys_exit_group") {
+ name = "exit_group"
+ status = $error_code
+ }
+probe kernel.syscall.exit_group.return =
+ kernel.function("do_group_exit").return {
+ name = "exit_group.return"
+ }
+# fadvise64 __________________________________________________
+/*
+ * asmlinkage long
+ * sys_fadvise64_64(int fd,
+ * loff_t offset,
+ * loff_t len,
+ * int advice)
+ */
+probe kernel.syscall.fadvise64 =
+ kernel.function("sys_fadvise64_64") {
+ name = "fadvise64"
+ fd = $fd
+ offset = $offset
+ len = $len
+ advice = $advice
+ }
+probe kernel.syscall.fadvise64.return =
+ kernel.function("sys_fadvise64_64").return {
+ name = "fadvise64.return"
+ }
+# fadvise64_64 _______________________________________________
+/*
+ * asmlinkage long
+ * sys_fadvise64_64(int fd,
+ * loff_t offset,
+ * loff_t len,
+ * int advice)
+ */
+probe kernel.syscall.fadvise64_64 =
+ kernel.function("sys_fadvise64_64") {
+ name = "fadvise64_64"
+ fs = $fd
+ offset = $offset
+ len = $len
+ advice = $advice
+ }
+probe kernel.syscall.fadvise64_64.return =
+ kernel.function("sys_fadvise64_64").return {
+ name = "fadvise64_64.return"
+ }
+# fchdir _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_fchdir(unsigned int fd)
+ */
+probe kernel.syscall.fchdir =
+ kernel.function("sys_fchdir") {
+ name = "fchdir"
+ fd = $fd
+ }
+probe kernel.syscall.fchdir.return =
+ kernel.function("sys_fchdir").return {
+ name = "fchdir.return"
+ }
+# fchmod _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_fchmod(unsigned int fd,
+ * mode_t mode)
+ */
+probe kernel.syscall.fchmod =
+ kernel.function("sys_fchmod") {
+ name = "fchmod"
+ fildes = $fd
+ mode = $mode
+ mode_str = _sys_open_mode_str($mode)
+ }
+probe kernel.syscall.fchmod.return =
+ kernel.function("sys_fchmod").return {
+ name = "fchmod.return"
+ }
+# fchown _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_fchown(unsigned int fd,
+ * uid_t user,
+ * gid_t group)
+ */
+probe kernel.syscall.fchown =
+ kernel.function("sys_fchown") {
+ name = "fchown"
+ fd = $fd
+ owner = $user
+ group = $group
+ }
+probe kernel.syscall.fchown.return =
+ kernel.function("sys_fchown").return {
+ name = "fchown.return"
+ }
+# fchown16 ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_fchown16(unsigned int fd,
+ * old_uid_t user,
+ * old_gid_t group)
+ */
+probe kernel.syscall.fchown16 =
+ kernel.function("sys_fchown") {
+ name = "fchown16"
+ fd = $fd
+ owner = $user
+ group = $group
+ }
+probe kernel.syscall.fchown16.return =
+ kernel.function("sys_fchown").return {
+ name = "fchown16.return"
+ }
+# fcntl ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_fcntl(int fd,
+ * unsigned int cmd,
+ * unsigned long arg)
+ */
+probe kernel.syscall.fcntl =
+ kernel.function("sys_fcntl") {
+ name = "fcntl"
+ fd = $fd
+ cmd = $cmd
+ cmd_str = _fcntl_cmd_str($cmd)
+ arg = $arg
+ }
+probe kernel.syscall.fcntl.return =
+ kernel.function("sys_fcntl").return {
+ name = "fcntl.return"
+ }
+# fdatasync __________________________________________________
+/*
+ * asmlinkage long
+ * sys_fdatasync(unsigned int fd)
+ */
+probe kernel.syscall.fdatasync =
+ kernel.function("sys_fdatasync") {
+ name = "fdatasync"
+ fd = $fd
+ }
+probe kernel.syscall.fdatasync.return =
+ kernel.function("sys_fdatasync").return {
+ name = "fdatasync.return"
+ }
+# fgetxattr __________________________________________________
+/*
+ * asmlinkage ssize_t
+ * sys_fgetxattr(int fd,
+ * char __user *name,
+ * void __user *value,
+ * size_t size)
+ */
+probe kernel.syscall.fgetxattr =
+ kernel.function("sys_fgetxattr") {
+ name = "fgetxattr"
+ fildes = $fd
+ path_uaddr = $name
+ value_uaddr = $value
+ size = $size
+ }
+probe kernel.syscall.fgetxattr.return =
+ kernel.function("sys_fgetxattr").return {
+ name = "fgetxattr.return"
+ }
+# flistxattr _________________________________________________
+/*
+ * asmlinkage ssize_t
+ * sys_flistxattr(int fd,
+ * char __user *list,
+ * size_t size)
+ */
+probe kernel.syscall.flistxattr =
+ kernel.function("sys_flistxattr") {
+ name = "flistxattr"
+ fildes = $fd
+ list_uaddr = $list
+ size = $size
+ }
+probe kernel.syscall.flistxattr.return =
+ kernel.function("sys_flistxattr").return {
+ name = "flistxattr.return"
+ }
+# flock ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_flock(unsigned int fd,
+ * unsigned int cmd)
+ */
+probe kernel.syscall.flock =
+ kernel.function("sys_flock") {
+ name = "flock"
+ fd = $fd
+ operation = $cmd
+ }
+probe kernel.syscall.flock.return =
+ kernel.function("sys_flock").return {
+ name = "flock.return"
+ }
+# fork _______________________________________________________
+# long do_fork(unsigned long clone_flags,
+# unsigned long stack_start,
+# struct pt_regs *regs,
+# unsigned long stack_size,
+# int __user *parent_tidptr,
+# int __user *child_tidptr)
+probe syscall.fork = kernel.function("do_fork") {
+ name = "fork"
+ clone_flags = $clone_flags
+ /*
+ * unable to find local 'start_stack' (maybe i386 specific)
+ * start_stack = $start_stack
+ */
+ regs_uaddr = $regs
+ stack_size = $stack_size
+ parent_tid_uaddr = $parent_tidptr
+ child_tid_uaddr = $child_tidptr
+}
+probe syscall.fork.return = kernel.function("do_fork").return {
+ name = "fork"
+ returnp = 1
+}
+# fremovexattr _______________________________________________
+/*
+ * asmlinkage long
+ * sys_fremovexattr(int fd,
+ * char __user *name)
+ */
+probe kernel.syscall.fremovexattr =
+ kernel.function("sys_fremovexattr") {
+ name = "fremovexattr"
+ filedes = $fd
+ name_uaddr = $name
+ }
+probe kernel.syscall.fremovexattr.return =
+ kernel.function("sys_fremovexattr").return {
+ name = "fremovexattr.return"
+ }
+# fsetxattr __________________________________________________
+/*
+ * asmlinkage long
+ * sys_fsetxattr(int fd,
+ * char __user *name,
+ * void __user *value,
+ * size_t size,
+ * int flags)
+ */
+probe kernel.syscall.fsetxattr =
+ kernel.function("sys_fsetxattr") {
+ name = "fsetxattr"
+ fildes = $fd
+ name_uaddr = $name
+ value_uaddr = $value
+ size = $size
+ flags = $flags
+ }
+probe kernel.syscall.fsetxattr.return =
+ kernel.function("sys_fsetxattr").return {
+ name = "fsetxattr.return"
+ }
+# fstat ______________________________________________________
+# long sys_fstat(unsigned int fd,struct __old_kernel_stat __user * statbuf)
+probe syscall.fstat = kernel.function("sys_fstat") {
+ name = "fstat"
+ fd = $fd
+ buf_uaddr = $statbuf
+ argstr = string($fd)
+}
+probe syscall.fstat.return = kernel.function("sys_fstat").return {
+ name = "fstat"
+ returnp = 1
+}
+# fstatfs ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_fstatfs(unsigned int fd,
+ * struct statfs __user * buf)
+ */
+probe kernel.syscall.fstatfs =
+ kernel.function("sys_fstatfs") {
+ name = "fstatfs"
+ fd = $fd
+ buf_uaddr = $buf
+ }
+probe kernel.syscall.fstatfs.return =
+ kernel.function("sys_fstatfs").return {
+ name = "fstatfs.return"
+ }
+# fstatfs64 __________________________________________________
+/*
+ * asmlinkage long
+ * sys_fstatfs64(unsigned int fd,
+ * size_t sz,
+ * struct statfs64 __user *buf)
+ */
+probe kernel.syscall.fstatfs64 =
+ kernel.function("sys_fstatfs64") {
+ name = "fstatfs64"
+ fd = $fd
+ sz = $sz
+ buf_uaddr = $buf
+ }
+probe kernel.syscall.fstatfs64.return =
+ kernel.function("sys_fstatfs64").return {
+ name = "fstatfs64.return"
+ }
+# fsync ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_fsync(unsigned int fd)
+ */
+probe kernel.syscall.fsync =
+ kernel.function("sys_fsync") {
+ name = "fsync"
+ fd = $fd
+ }
+probe kernel.syscall.fsync.return =
+ kernel.function("sys_fsync").return {
+ name = "fsync.return"
+ }
+# ftruncate __________________________________________________
+/*
+ * static inline long
+ * do_sys_ftruncate(unsigned int fd,
+ * loff_t length,
+ * int small)
+ */
+probe kernel.syscall.ftruncate =
+ kernel.function("sys_ftruncate") {
+ name = "ftruncate"
+ fd = $fd
+ length = $length
+ }
+probe kernel.syscall.ftruncate.return =
+ kernel.function("sys_ftruncate").return {
+ name = "ftruncate.return"
+ }
+# ftruncate64 ________________________________________________
+/*
+ * asmlinkage long
+ * sys_ftruncate64(unsigned int fd,
+ * loff_t length)
+ */
+probe kernel.syscall.ftruncate64 =
+ kernel.function("sys_ftruncate") {
+ name = "ftruncate64"
+ fd = $fd
+ length = $length
+ }
+probe kernel.syscall.ftruncate64.return =
+ kernel.function("sys_ftruncate").return {
+ name = "ftruncate64.return"
+ }
+# futex ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_futex(u32 __user *uaddr,
+ * int op,
+ * int val,
+ * struct timespec __user *utime,
+ * u32 __user *uaddr2,
+ * int val3)
+ */
+probe kernel.syscall.futex =
+ kernel.function("sys_futex") {
+ name = "futex"
+ futex_uaddr = $uaddr
+ op = $op
+ op_str = _futex_op_str($op)
+ val = $val
+ timeout_uaddr = $utime
+ uaddr2_uaddr = $uaddr2
+ val3 = $val3
+ }
+probe kernel.syscall.futex.return =
+ kernel.function("sys_futex").return {
+ name = "futex.return"
+ }
+# getcwd _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getcwd(char __user *buf,
+ * unsigned long size)
+ */
+probe kernel.syscall.getcwd =
+ kernel.function("sys_getcwd") {
+ name = "getcwd"
+ buf_uaddr = $buf
+ size = $size
+ }
+probe kernel.syscall.getcwd.return =
+ kernel.function("sys_getcwd").return {
+ name = "getcwd.return"
+ }
+# getdents ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_getdents(unsigned int fd,
+ * struct linux_dirent __user * dirent,
+ * unsigned int count)
+ */
+probe kernel.syscall.getdents =
+ kernel.function("sys_getdents") {
+ name = "getdents"
+ fd = $fd
+ dirp_uaddr = $dirent
+ count = $count
+ }
+probe kernel.syscall.getdents.return =
+ kernel.function("sys_getdents").return {
+ name = "getdents.return"
+ }
+# getdents64 _________________________________________________
+/*
+ * asmlinkage long
+ * sys_getdents64(unsigned int fd,
+ * struct linux_dirent64 __user * dirent,
+ * unsigned int count)
+ */
+probe kernel.syscall.getdents64 =
+ kernel.function("sys_getdents64") {
+ name = "getdents64"
+ fd = $fd
+ dirp_uaddr = $dirent
+ count = $count
+ }
+probe kernel.syscall.getdents64.return =
+ kernel.function("sys_getdents64").return {
+ name = "getdents64.return"
+ }
+# getegid ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getegid(void)
+ */
+probe kernel.syscall.getegid =
+ kernel.function("sys_getegid") {
+ name = "getegid"
+ }
+probe kernel.syscall.getegid.return =
+ kernel.function("sys_getegid").return {
+ name = "getegid.return"
+ }
+# getegid16 __________________________________________________
+/*
+ * asmlinkage long
+ * sys_getegid16(void)
+ */
+probe kernel.syscall.getegid16 =
+ kernel.function("sys_getegid16") {
+ name = "getegid16"
+ }
+probe kernel.syscall.getegid16.return =
+ kernel.function("sys_getegid16").return {
+ name = "getegid16.return"
+ }
+# geteuid ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_geteuid(void)
+ */
+probe kernel.syscall.geteuid =
+ kernel.function("sys_geteuid") {
+ name = "geteuid"
+ }
+probe kernel.syscall.geteuid.return =
+ kernel.function("sys_geteuid").return {
+ name = "geteuid.return"
+ }
+# geteuid16 __________________________________________________
+/*
+ * asmlinkage long
+ * sys_geteuid16(void)
+ */
+probe kernel.syscall.geteuid16 =
+ kernel.function("sys_geteuid16") {
+ name = "geteuid16"
+ }
+probe kernel.syscall.geteuid16.return =
+ kernel.function("sys_geteuid16").return {
+ name = "geteuid16.return"
+ }
+# getgid _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getgid(void)
+ */
+probe kernel.syscall.getgid =
+ kernel.function("sys_getgid") {
+ name = "getgid"
+ }
+probe kernel.syscall.getgid.return =
+ kernel.function("sys_getgid").return {
+ name = "getgid.return"
+ }
+# getgid16 ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_getgid16(void)
+ */
+probe kernel.syscall.getgid16 =
+ kernel.function("sys_getgid16") {
+ name = "getgid16"
+ }
+probe kernel.syscall.getgid16.return =
+ kernel.function("sys_getgid16").return {
+ name = "getgid16.return"
+ }
+# getgroups __________________________________________________
+/*
+ * asmlinkage long
+ * sys_getgroups(int gidsetsize,
+ * gid_t __user *grouplist)
+ */
+probe kernel.syscall.getgroups =
+ kernel.function("sys_getgroups") {
+ name = "getgroups"
+ size = $gidsetsize
+ /*
+ * NOTE
+ * list defined as "gid_t list[]" there
+ * is no practical way to export these
+ * values. Therefore just export addr,
+ * let the user take care of it with
+ * embedded C if need be.
+ */
+ list_uaddr = $grouplist
+ }
+probe kernel.syscall.getgroups.return =
+ kernel.function("sys_getgroups").return {
+ name = "getgroups.return"
+ }
+# getgroups16 ________________________________________________
+/*
+ * asmlinkage long
+ * sys_getgroups16(int gidsetsize,
+ * old_gid_t __user *grouplist)
+ */
+probe kernel.syscall.getgroups16 =
+ kernel.function("sys_getgroups16") {
+ name = "getgroups16"
+ size = $gidsetsize
+ list_uaddr = $grouplist
+ }
+probe kernel.syscall.getgroups16.return =
+ kernel.function("sys_getgroups16").return {
+ name = "getgroups16.return"
+ }
+# gethostname ________________________________________________
+/*
+ * asmlinkage long
+ * sys_gethostname(char __user *name,
+ * int len)
+ */
+probe kernel.syscall.gethostname =
+ kernel.function("sys_gethostname") {
+ name = "gethostname"
+ hostname_uaddr = $name
+ len = $len
+ }
+probe kernel.syscall.gethostname.return =
+ kernel.function("sys_gethostname").return {
+ name = "gethostname.return"
+ }
+# getitimer __________________________________________________
+/*
+ * asmlinkage long
+ * sys_getitimer(int which,
+ * struct itimerval __user *value)
+ */
+probe kernel.syscall.getitimer =
+ kernel.function("sys_getitimer") {
+ name = "getitimer"
+ which = $which
+ which_str = _itimer_which_str($which)
+ value_uaddr = $value
+ /*
+ * XXX NOT SAFE -- might sleep
+ * value_it_interval_tv_sec = __uget_itimerval_tv_m($value,0)
+ * value_it_interval_tv_usec = __uget_itimerval_tv_m($value,1)
+ * value_it_value_tv_sec = __uget_itimerval_tv_m($value,2)
+ * value_it_value_tv_usec = __uget_itimerval_tv_m($value,3)
+ */
+ }
+probe kernel.syscall.getitimer.return =
+ kernel.function("sys_getitimer").return {
+ name = "getitimer.return"
+ }
+# getpeername ________________________________________________
+/*
+ * asmlinkage long
+ * sys_getpeername(int fd,
+ * struct sockaddr __user *usockaddr,
+ * int __user *usockaddr_len)
+ */
+probe kernel.syscall.getpeername =
+ kernel.function("sys_getpeername") {
+ name = "getpeername"
+ s = $fd
+ name_uaddr = $usockaddr
+ namelen_uaddr = $usockaddr_len
+ }
+probe kernel.syscall.getpeername.return =
+ kernel.function("sys_getpeername").return {
+ name = "getpeername.return"
+ }
+# getpgid ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getpgid(void)
+ */
+probe kernel.syscall.getpgid =
+ kernel.function("sys_getpgid") {
+ name = "getpgid"
+ }
+probe kernel.syscall.getpgid.return =
+ kernel.function("sys_getpgid").return {
+ name = "getpgid.return"
+ }
+# getpgrp ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getpgrp(void)
+ */
+probe kernel.syscall.getpgrp =
+ kernel.function("sys_getpgrp") {
+ name = "getpgrp"
+ }
+probe kernel.syscall.getpgrp.return =
+ kernel.function("sys_getpgrp").return {
+ name = "getpgrp.return"
+ }
+# getpid _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getpid(void)
+ */
+probe kernel.syscall.getpid =
+ kernel.function("sys_getpid") {
+ name = "getpid"
+ }
+probe kernel.syscall.getpid.return =
+ kernel.function("sys_getpid").return {
+ name = "getpid.return"
+ }
+# getppid ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getppid(void)
+ */
+probe kernel.syscall.getppid =
+ kernel.function("sys_getppid") {
+ name = "getppid"
+ }
+probe kernel.syscall.getppid.return =
+ kernel.function("sys_getppid").return {
+ name = "getppid.return"
+ }
+# getpriority ________________________________________________
+/*
+ * asmlinkage long
+ * sys_getpriority(int which,
+ * int who)
+ */
+probe kernel.syscall.getpriority =
+ kernel.function("sys_getpriority") {
+ name = "getpriority"
+ which = $which
+ which_str = _priority_which_str($which)
+ who = $who
+ }
+probe kernel.syscall.getpriority.return =
+ kernel.function("sys_getpriority").return {
+ name = "getpriority.return"
+ }
+# getresgid __________________________________________________
+/*
+ * asmlinkage
+ * long sys_getresgid(gid_t __user *rgid,
+ * gid_t __user *egid,
+ * gid_t __user *sgid)
+ */
+probe kernel.syscall.getresgid =
+ kernel.function("sys_getresgid") {
+ name = "getresgid"
+ rgid_uaddr = $rgid
+ egid_uaddr = $egid
+ sgid_uaddr = $sgid
+ /*
+ * XXX NOT SAFE -- might sleep
+ * rgid = __uget_num($rgid)
+ * egid = __uget_num($egid)
+ * sgid = __uget_num($sgid)
+ */
+ }
+probe kernel.syscall.getresgid.return =
+ kernel.function("sys_getresgid").return {
+ name = "getresgid.return"
+ }
+# getresgid16 ________________________________________________
+/*
+ * asmlinkage long
+ * sys_getresgid16(old_uid_t __user *rgid,
+ * old_uid_t __user *egid,
+ * old_uid_t __user *sgid)
+ */
+probe kernel.syscall.getresgid16 =
+ kernel.function("sys_getresgid") {
+ name = "getresgid16"
+ rgid_uaddr = $rgid
+ egid_uaddr = $egid
+ sgid_uaddr = $sgid
+ }
+probe kernel.syscall.getresgid16.return =
+ kernel.function("sys_getresgid").return {
+ name = "getresgid16.return"
+ }
+# getresuid __________________________________________________
+/*
+ * asmlinkage long
+ * sys_getresuid(uid_t __user *ruid,
+ * uid_t __user *euid,
+ * uid_t __user *suid)
+ */
+probe kernel.syscall.getresuid =
+ kernel.function("sys_getresuid") {
+ name = "getresuid"
+ ruid_uaddr = $ruid
+ euid_uaddr = $euid
+ suid_uaddr = $suid
+ /*
+ * XXX NOT SAFE -- might sleep
+ * ruid = __uget_num($ruid)
+ * euid = __uget_num($euid)
+ * suid = __uget_num($suid)
+ */
+ }
+probe kernel.syscall.getresuid.return =
+ kernel.function("sys_getresuid").return {
+ name = "getresuid.return"
+ }
+# getresuid16 ________________________________________________
+/*
+ * asmlinkage long
+ * sys_getresuid16(old_uid_t __user *ruid,
+ * old_uid_t __user *euid,
+ * old_uid_t __user *suid)
+ */
+probe kernel.syscall.getresuid16 =
+ kernel.function("sys_getresuid") {
+ name = "getresuid16"
+ ruid_uaddr = $ruid
+ euid_uaddr = $euid
+ suid_uaddr = $suid
+ }
+probe kernel.syscall.getresuid16.return =
+ kernel.function("sys_getresuid").return {
+ name = "getresuid16.return"
+ }
+# getrlimit __________________________________________________
+/*
+ * asmlinkage long
+ * sys_getrlimit(unsigned int resource,
+ * struct rlimit __user *rlim)
+ */
+probe kernel.syscall.getrlimit =
+ kernel.function("sys_getrlimit") {
+ name = "getrlimit"
+ resource = $resource
+ resource_str = _rlimit_resource_str($resource)
+ rlim_uaddr = $rlim
+ }
+probe kernel.syscall.getrlimit.return =
+ kernel.function("sys_getrlimit").return {
+ name = "getrlimit.return"
+ }
+# getrusage __________________________________________________
+/*
+ * asmlinkage long
+ * sys_getrusage(int who,
+ * struct rusage __user *ru)
+ */
+probe kernel.syscall.getrusage =
+ kernel.function("sys_getrusage") {
+ name = "getrusage"
+ who = $who
+ who_str = _rusage_who_str($who)
+ usage_uaddr = $ru
+ }
+probe kernel.syscall.getrusage.return =
+ kernel.function("sys_getrusage").return {
+ name = "getrusage.return"
+ }
+# getsid _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getsid(pid_t pid)
+ */
+probe kernel.syscall.getsid =
+ kernel.function("sys_getsid") {
+ name = "getsid"
+ pid = $pid
+ }
+probe kernel.syscall.getsid.return =
+ kernel.function("sys_getsid").return {
+ name = "getsid.return"
+ }
+# getsockname ________________________________________________
+/*
+ * asmlinkage long
+ * sys_getsockname(int fd,
+ * struct sockaddr __user *usockaddr,
+ * int __user *usockaddr_len)
+ */
+probe kernel.syscall.getsockname =
+ kernel.function("sys_getsockname") {
+ name = "getsockname"
+ s = $fd
+ name_uaddr = $usockaddr
+ namelen_uaddr = $usockaddr_len
+ }
+probe kernel.syscall.getsockname.return =
+ kernel.function("sys_getsockname").return {
+ name = "getsockname.return"
+ }
+# getsockopt _________________________________________________
+/*
+ * asmlinkage long
+ * sys_getsockopt(int fd,
+ * int level,
+ * int optname,
+ * char __user *optval,
+ * int __user *optlen)
+ */
+probe kernel.syscall.getsockopt =
+ kernel.function("sys_getsockopt") {
+ name = "getsockopt"
+ fd = $fd
+ level = $level
+ level_str = _sockopt_level_str($level)
+ optname = $optname
+ optname_str = _sockopt_optname_str($optname)
+ optval_uaddr = $optval
+ optlen_uaddr = $optlen
+ }
+probe kernel.syscall.getsockopt.return =
+ kernel.function("sys_getsockopt").return {
+ name = "getsockopt.return"
+ }
+# gettid _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_gettid(void)
+ */
+probe kernel.syscall.gettid =
+ kernel.function("sys_gettid") {
+ name = "gettid"
+ }
+probe kernel.syscall.gettid.return =
+ kernel.function("sys_gettid").return {
+ name = "gettid.return"
+ }
+# gettimeofday _______________________________________________
+/*
+ * asmlinkage long
+ * sys_gettimeofday(struct timeval __user *tv,
+ * struct timezone __user *tz)
+ */
+probe kernel.syscall.gettimeofday =
+ kernel.function("sys_gettimeofday") {
+ name = "gettimeofday"
+ tv_uaddr = $tv
+ tz_uaddr = $tz
+ /*
+ * XXX NOT SAFE -- might sleep
+ * tv_tv_sec = __uget_tv_m($tv,0)
+ * tv_tv_usec = __uget_tv_m($tv,1)
+ * tz_tz_minuteswest = __uget_tz_m($tz,0)
+ * tz_tz_dsttime = __uget_tz_m($tz,1)
+ */
+ }
+probe kernel.syscall.gettimeofday.return =
+ kernel.function("sys_gettimeofday").return {
+ name = "gettimeofday.return"
+ }
+# getuid _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_getuid(void)
+ */
+probe kernel.syscall.getuid =
+ kernel.function("sys_getuid") {
+ name = "getuid"
+ }
+probe kernel.syscall.getuid.return =
+ kernel.function("sys_getuid").return {
+ name = "getuid.return"
+ }
+# getuid16 ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_getuid16(void)
+ */
+probe kernel.syscall.getuid16 =
+ kernel.function("sys_getuid16") {
+ name = "getuid16"
+ }
+probe kernel.syscall.getuid16.return =
+ kernel.function("sys_getuid16").return {
+ name = "getuid16.return"
+ }
+# getxattr ___________________________________________________
+/*
+ * asmlinkage ssize_t
+ * sys_getxattr(char __user *path,
+ * char __user *name,
+ * void __user *value,
+ * size_t size)
+ */
+probe kernel.syscall.getxattr =
+ kernel.function("sys_getxattr") {
+ name = "getxattr"
+ path_uaddr = $path
+ name_uaddr = $name
+ value_uaddr = $value
+ size = $size
+ }
+probe kernel.syscall.getxattr.return =
+ kernel.function("sys_getxattr").return {
+ name = "getxattr.return"
+ }
+# init_module ________________________________________________
+/*
+ * sys_init_module(void __user *umod,
+ * unsigned long len,
+ * const char __user *uargs)
+ */
+probe kernel.syscall.init_module =
+ kernel.function("sys_init_module") {
+ name = "init_module"
+ umod_uaddr = $umod
+ len = $len
+ uargs_uaddr = $uargs
+ }
+probe kernel.syscall.init_module.return =
+ kernel.function("sys_init_module").return {
+ name = "init_module.return"
+ }
+# io_cancel __________________________________________________
+/*
+ * asmlinkage long
+ * sys_io_cancel(aio_context_t ctx_id,
+ * struct iocb __user *iocb,
+ * struct io_event __user *result)
+ */
+probe kernel.syscall.io_cancel =
+ kernel.function("sys_io_cancel") {
+ name = "io_cancel"
+ ctx_id = $ctx_id
+ iocb_uaddr = $iocb
+ result_uaddr = $result
+ }
+probe kernel.syscall.io_cancel.return =
+ kernel.function("sys_io_cancel").return {
+ name = "io_cancel.return"
+ }
+# ioctl ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_ioctl(unsigned int fd,
+ * unsigned int cmd,
+ * unsigned long arg)
+ */
+probe kernel.syscall.ioctl =
+ kernel.function("sys_ioctl") {
+ name = "ioctl"
+ fd = $fd
+ request = $cmd
+ argp = $arg
+ }
+probe kernel.syscall.ioctl.return =
+ kernel.function("sys_ioctl").return {
+ name = "ioctl.return"
+ }
+# io_destroy _________________________________________________
+/*
+ * asmlinkage long
+ * sys_io_destroy(aio_context_t ctx)
+ */
+probe kernel.syscall.io_destroy =
+ kernel.function("sys_io_destroy") {
+ name = "io_destroy"
+ ctx = $ctx
+ }
+probe kernel.syscall.io_destroy.return =
+ kernel.function("sys_io_destroy").return {
+ name = "io_destroy.return"
+ }
+# io_getevents _______________________________________________
+/*
+ * asmlinkage long
+ * sys_io_getevents(aio_context_t ctx_id,
+ * long min_nr,
+ * long nr,
+ * struct io_event __user *events,
+ * struct timespec __user *timeout)
+ */
+probe kernel.syscall.io_getevents =
+ kernel.function("sys_io_getevents") {
+ name = "io_getevents"
+ ctx_id = $ctx_id
+ min_nr = $min_nr
+ nr = $nr
+ events_uaddr = $events
+ timeout_uaddr = $timeout
+ }
+probe kernel.syscall.io_getevents.return =
+ kernel.function("sys_io_getevents").return {
+ name = "io_getevents.return"
+ }
+# ioperm _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_ioperm(unsigned long from,
+ * unsigned long num,
+ * int turn_on)
+ */
+probe kernel.syscall.ioperm =
+ kernel.function("sys_ioperm") {
+ name = "ioperm"
+ from = $from
+ num = $num
+ turn_on = $turn_on
+ }
+probe kernel.syscall.ioperm.return =
+ kernel.function("sys_ioperm").return {
+ name = "ioperm.return"
+ }
+# io_setup ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_io_setup(unsigned nr_events,
+ * aio_context_t __user *ctxp)
+ */
+probe kernel.syscall.io_setup =
+ kernel.function("sys_io_setup") {
+ name = "io_setup"
+ maxevents = $nr_events
+ ctxp_uaddr = $ctxp
+ }
+probe kernel.syscall.io_setup.return =
+ kernel.function("sys_io_setup").return {
+ name = "io_setup.return"
+ }
+# io_submit __________________________________________________
+/*
+ * asmlinkage long
+ * sys_io_submit(aio_context_t ctx_id,
+ * long nr,
+ * struct iocb __user * __user *iocbpp)
+ */
+probe kernel.syscall.io_submit =
+ kernel.function("sys_io_submit") {
+ name = "io_submit"
+ ctx_id = $ctx_id
+ nr = $nr
+ iocbpp_uaddr = $iocbpp
+}
+probe kernel.syscall.io_submit.return =
+ kernel.function("sys_io_submit").return {
+ name = "io_submit.return"
+ }
+# kexec_load _________________________________________________
+/*
+ * asmlinkage long
+ * sys_kexec_load(unsigned long entry,
+ * unsigned long nr_segments,
+ * struct kexec_segment __user *segments,
+ * unsigned long flags)
+ */
+/*
+probe kernel.syscall.kexec_load =
+ kernel.function("sys_kexec_load") {
+ name = "kexec_load"
+ entry = $entry
+ nr_segments = $nr_segments
+ segments_uaddr = $segments_uaddr
+ flags = $flags
+ }
+probe kernel.syscall.kexec_load.return =
+ kernel.function("sys_kexec_load").return {
+ name = "kexec_load.return"
+ }
+*/
+# keyctl _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_keyctl(int option,
+ * unsigned long arg2,
+ * unsigned long arg3,
+ * unsigned long arg4,
+ * unsigned long arg5)
+ */
+probe kernel.syscall.keyctl =
+ kernel.function("sys_keyctl") {
+ name = "keyctl"
+ option = $option
+ arg2 = $arg2
+ arg3 = $arg3
+ arg4 = $arg4
+ arg5 = $arg5
+ }
+probe kernel.syscall.keyctl.return =
+ kernel.function("sys_keyctl").return {
+ name = "keyctl.return"
+ }
+# kill _______________________________________________________
+/*
+ * asmlinkage long
+ * sys_kill(int pid, int sig)
+ */
+probe kernel.syscall.kill =
+ kernel.function("sys_kill") {
+ name = "kill"
+ pid = $pid
+ sig = $sig
+ }
+probe kernel.syscall.kill.return =
+ kernel.function("sys_kill").return {
+ name = "kill.return"
+ }
+# lchown _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_lchown(const char __user * filename,
+ * uid_t user,
+ * gid_t group)
+ */
+probe kernel.syscall.lchown =
+ kernel.function("sys_lchown") {
+ name = "lchown"
+ path_uaddr = $filename
+ owner = $user
+ group = $group
+ }
+probe kernel.syscall.lchown.return =
+ kernel.function("sys_lchown").return {
+ name = "lchown.return"
+ }
+# lchown16 ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_lchown16(const char __user * filename,
+ * old_uid_t user,
+ * old_gid_t group)
+ */
+probe kernel.syscall.lchown16 =
+ kernel.function("sys_lchown") {
+ name = "lchown16"
+ path_uaddr = $filename
+ owner = $user
+ group = $group
+ }
+probe kernel.syscall.lchown16.return =
+ kernel.function("sys_lchown").return {
+ name = "lchown16.return"
+ }
+# lgetxattr __________________________________________________
+/*
+ * asmlinkage ssize_t
+ * sys_lgetxattr(char __user *path,
+ * char __user *name,
+ * void __user *value,
+ * size_t size)
+ */
+probe kernel.syscall.lgetxattr =
+ kernel.function("sys_lgetxattr") {
+ name = "lgetxattr"
+ path_uaddr = $path
+ name_uaddr = $name
+ value_uaddr = $value
+ size = $size
+ }
+probe kernel.syscall.lgetxattr.return =
+ kernel.function("sys_lgetxattr").return {
+ name = "lgetxattr.return"
+ }
+# link _______________________________________________________
+/*
+ * asmlinkage long
+ * sys_link(const char __user * oldname,
+ * const char __user * newname)
+ */
+probe kernel.syscall.link =
+ kernel.function("sys_link") {
+ name = "link"
+ oldpath_uaddr = $oldname
+ newpath_uaddr = $newname
+ }
+probe kernel.syscall.link.return =
+ kernel.function("sys_link").return {
+ name = "link.return"
+ }
+# listen _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_listen(int fd,
+ * int backlog)
+ */
+probe kernel.syscall.listen =
+ kernel.function("sys_listen") {
+ name = "listen"
+ s = $fd
+ backlog = $backlog
+ }
+probe kernel.syscall.listen.return =
+ kernel.function("sys_listen").return {
+ name = "listen.return"
+ }
+# listxattr __________________________________________________
+/*
+ * asmlinkage ssize_t
+ * sys_listxattr(char __user *path,
+ * char __user *list,
+ * size_t size)
+ */
+probe kernel.syscall.listxattr =
+ kernel.function("sys_listxattr") {
+ name = "listxattr"
+ path_uaddr = $path
+ list_uaddr = $list
+ size = $size
+ }
+probe kernel.syscall.listxattr.return =
+ kernel.function("sys_listxattr").return {
+ name = "listxattr.return"
+ }
+# llistxattr _________________________________________________
+/*
+ * asmlinkage ssize_t
+ * sys_llistxattr(char __user *path,
+ * char __user *list,
+ * size_t size)
+ */
+probe kernel.syscall.llistxattr =
+ kernel.function("sys_llistxattr") {
+ name = "llistxattr"
+ path_uaddr = $path
+ list_uaddr = $list
+ size = $size
+ }
+probe kernel.syscall.llistxattr.return =
+ kernel.function("sys_llistxattr").return {
+ name = "llistxattr.return"
+ }
+# llseek _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_llseek(unsigned int fd,
+ * unsigned long offset_high,
+ * unsigned long offset_low,
+ * loff_t __user * result,
+ * unsigned int origin)
+ */
+probe kernel.syscall.llseek =
+ kernel.function("sys_llseek") {
+ name = "llseek"
+ fd = $fd
+ offset_high = $offset_high
+ offset_low = $offset_low
+ result_uaddr = $result
+ whence = $origin
+ whence_str = _seek_whence_str($origin)
+ }
+probe kernel.syscall.llseek.return =
+ kernel.function("sys_llseek").return {
+ name = "llseek.return"
+ }
+# lookup_dcookie _____________________________________________
+/*
+ * asmlinkage long
+ * sys_lookup_dcookie(u64 cookie64,
+ * char __user * buf,
+ * size_t len)
+ */
+probe kernel.syscall.lookup_dcookie =
+ kernel.function("sys_lookup_dcookie") {
+ name = "lookup_dcookie"
+ cookie = $cookie64
+ buffer_uaddr = $buf
+ len = $len
+ }
+probe kernel.syscall.lookup_dcookie.return =
+ kernel.function("sys_lookup_dcookie").return {
+ name = "lookup_dcookie.return"
+ }
+# lremovexattr _______________________________________________
+/*
+ * asmlinkage long
+ * sys_lremovexattr(char __user *path,
+ * char __user *name)
+ */
+probe kernel.syscall.lremovexattr =
+ kernel.function("sys_lremovexattr") {
+ name = "lremovexattr"
+ path_uaddr = $path
+ name_uaddr = $name
+ }
+probe kernel.syscall.lremovexattr.return =
+ kernel.function("sys_lremovexattr").return {
+ name = "lremovexattr.return"
+ }
+# lseek ______________________________________________________
+/*
+ * asmlinkage off_t
+ * sys_lseek(unsigned int fd,
+ * off_t offset,
+ * unsigned int origin)
+ */
+probe kernel.syscall.lseek =
+ kernel.function("sys_lseek") {
+ name = "lseek"
+ fildes = $fd
+ offset = $offset
+ whence = $origin
+ whence_str = _seek_whence_str($origin)
+ }
+probe kernel.syscall.lseek.return =
+ kernel.function("sys_lseek").return {
+ name = "lseek.return"
+ }
+# lsetxattr __________________________________________________
+/*
+ * asmlinkage long
+ * sys_lsetxattr(char __user *path,
+ * char __user *name,
+ * void __user *value,
+ * size_t size,
+ * int flags)
+ */
+probe kernel.syscall.lsetxattr =
+ kernel.function("sys_lsetxattr") {
+ name = "lsetxattr"
+ path_uaddr = $path
+ name_uaddr = $name
+ value_uaddr = $value
+ size = $size
+ flags = $flags
+ }
+probe kernel.syscall.lsetxattr.return =
+ kernel.function("sys_lsetxattr").return {
+ name = "lsetxattr.return"
+ }
+# lstat ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_lstat(char __user * filename,
+ * struct __old_kernel_stat __user * statbuf)
+ */
+probe kernel.syscall.lstat =
+ kernel.function("sys_lstat") {
+ name = "lstat"
+ filename_uaddr = $filename
+ buf_uaddr = $statbuf
+ }
+probe kernel.syscall.lstat.return =
+ kernel.function("sys_lstat").return {
+ name = "lstat.return"
+ }
+# madvise ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_madvise(unsigned long start,
+ * size_t len_in,
+ * int behavior)
+ */
+probe kernel.syscall.madvise =
+ kernel.function("sys_madvise") {
+ name = "madvise"
+ start = $start
+ length = $len_in
+ advice = $behavior
+ advice_str = _madvice_advice_str($behavior)
+ }
+probe kernel.syscall.madvise.return =
+ kernel.function("sys_madvise").return {
+ name = "madvise.return"
+ }
+# mincore ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_mincore(unsigned long start,
+ * size_t len,
+ * unsigned char __user * vec)
+ */
+probe kernel.syscall.mincore =
+ kernel.function("sys_mincore") {
+ name = "mincore"
+ start = $start
+ length = $len
+ vec_uaddr = $vec
+ }
+probe kernel.syscall.mincore.return =
+ kernel.function("sys_mincore").return {
+ name = "mincore.return"
+ }
+# mkdir ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_mkdir(const char __user * pathname,
+ * int mode)
+ */
+probe kernel.syscall.mkdir =
+ kernel.function("sys_mkdir") {
+ name = "mkdir"
+ pathname_uaddr = $pathname
+ mode = $mode
+ }
+probe kernel.syscall.mkdir.return =
+ kernel.function("sys_mkdir").return {
+ name = "mkdir.return"
+ }
+# mknod ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_mknod(const char __user * filename,
+ * int mode,
+ * unsigned dev)
+ */
+probe kernel.syscall.mknod =
+ kernel.function("sys_mknod") {
+ name = "mknod"
+ pathname_uaddr = $filename
+ mode = $mode
+ mode_str = _mknod_mode_str($mode)
+ dev = $dev
+ }
+probe kernel.syscall.mknod.return =
+ kernel.function("sys_mknod").return {
+ name = "mknod.return"
+ }
+# mlock ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_mlock(unsigned long start,
+ * size_t len)
+ */
+probe kernel.syscall.mlock =
+ kernel.function("sys_mlock") {
+ name = "mlock"
+ addr = $start
+ len = $len
+ }
+probe kernel.syscall.mlock.return =
+ kernel.function("sys_mlock").return {
+ name = "mlock.return"
+ }
+# mlockall ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_mlockall(int flags)
+ */
+probe kernel.syscall.mlockall =
+ kernel.function("sys_mlockall") {
+ name = "mlockall"
+ flags = $flags
+ flags_str = _mlockall_flags_str($flags)
+ }
+probe kernel.syscall.mlockall.return =
+ kernel.function("sys_mlockall").return {
+ name = "mlockall.return"
+ }
+# modify_ldt _________________________________________________
+/*
+ * asmlinkage int
+ * sys_modify_ldt(int func,
+ * void __user *ptr,
+ * unsigned long bytecount)
+ */
+probe kernel.syscall.modify_ldt =
+ kernel.function("sys_modify_ldt") {
+ name = "modify_ldt"
+ func = $func
+ ptr_uaddr = $ptr
+ bytecount = $bytecount
+ }
+probe kernel.syscall.modify_ldt.return =
+ kernel.function("sys_modify_ldt").return {
+ name = "modify_ldt.return"
+ }
+# mount ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_mount(char __user * dev_name,
+ * char __user * dir_name,
+ * char __user * type,
+ * unsigned long flags,
+ * void __user * data)
+ */
+probe kernel.syscall.mount =
+ kernel.function("sys_mount") {
+ name = "mount"
+ source_uaddr = $dev_name
+ target_uaddr = $dir_name
+ filesystemtype_uaddr = $type
+ mountflags = $flags
+ mountflags_str = _mountflags_str($flags)
+ data_uaddr = $data
+ }
+probe kernel.syscall.mount.return =
+ kernel.function("sys_mount").return {
+ name = "mount.return"
+ }
+# mprotect ___________________________________________________
+/*
+ * asmlinkage long
+ * sys_mprotect(unsigned long start,
+ * size_t len,
+ * unsigned long prot)
+ */
+probe kernel.syscall.mprotect =
+ kernel.function("sys_mprotect") {
+ name = "mprotect"
+ addr = $start
+ len = $len
+ prot = $prot
+ prot_str = _mprotect_prot_str($prot)
+ }
+probe kernel.syscall.mprotect.return =
+ kernel.function("sys_mprotect").return {
+ name = "mprotect.return"
+ }
+# mq_getsetattr ______________________________________________
+/*
+ * asmlinkage long
+ * sys_mq_getsetattr(mqd_t mqdes,
+ * const struct mq_attr __user *u_mqstat,
+ * struct mq_attr __user *u_omqstat)
+ */
+probe kernel.syscall.mq_getsetattr =
+ kernel.function("sys_mq_getsetattr") {
+ name = "mq_getsetattr"
+ mqdes = $mqdes
+ u_mqstat_uaddr = $u_mqstat
+ u_omqstat_uaddr = $u_omqstat
+ }
+probe kernel.syscall.mq_getsetattr.return =
+ kernel.function("sys_mq_getsetattr").return {
+ name = "mq_getsetattr.return"
+ }
+# mq_notify __________________________________________________
+/*
+ * asmlinkage long
+ * sys_mq_notify(mqd_t mqdes,
+ * const struct sigevent __user *u_notification)
+ */
+probe kernel.syscall.mq_notify =
+ kernel.function("sys_mq_notify") {
+ name = "mq_notify"
+ mqdes = $mqdes
+ notification_uaddr = $u_notification
+ }
+probe kernel.syscall.mq_notify.return =
+ kernel.function("sys_mq_notify").return {
+ name = "mq_notify.return"
+ }
+# mq_open ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_mq_open(const char __user *u_name,
+ * int oflag,
+ * mode_t mode,
+ * struct mq_attr __user *u_attr)
+ */
+probe kernel.syscall.mq_open =
+ kernel.function("sys_mq_open") {
+ name = "mq_open"
+ name_uaddr = $u_name
+ oflag = $oflag
+ mode = $mode
+ u_attr_uaddr = $u_attr
+ }
+probe kernel.syscall.mq_open.return =
+ kernel.function("sys_mq_open").return {
+ name = "mq_open.return"
+ }
+# mq_timedreceive ____________________________________________
+/*
+ * asmlinkage ssize_t
+ * sys_mq_timedreceive(mqd_t mqdes,
+ * char __user *u_msg_ptr,
+ * size_t msg_len,
+ * unsigned int __user *u_msg_prio,
+ * const struct timespec __user *u_abs_timeout)
+ */
+probe kernel.syscall.mq_timedreceive =
+ kernel.function("sys_mq_timedreceive") {
+ name = "mq_timedreceive"
+ mqdes = $mqdes
+ msg_ptr_uaddr = $u_msg_ptr
+ msg_len = $msg_len
+ msg_prio_uaddr = $u_msg_prio
+ abs_timout_uaddr = $u_abs_timeout
+ }
+probe kernel.syscall.mq_timedreceive.return =
+ kernel.function("sys_mq_timedreceive").return {
+ name = "mq_timedreceive.return"
+ }
+# mq_timedsend _______________________________________________
+/*
+ * asmlinkage long
+ * sys_mq_timedsend(mqd_t mqdes,
+ * const char __user *u_msg_ptr,
+ * size_t msg_len,
+ * unsigned int msg_prio,
+ * const struct timespec __user *u_abs_timeout)
+ */
+probe kernel.syscall.mq_timedsend =
+ kernel.function("sys_mq_timedsend") {
+ name = "mq_timedsend"
+ mqdes = $mqdes
+ msg_ptr_uaddr = $u_msg_ptr
+ msg_len = $msg_len
+ msg_prio = $msg_prio
+ abs_timeout_uaddr = $u_abs_timeout
+ }
+probe kernel.syscall.mq_timedsend.return =
+ kernel.function("sys_mq_timedsend").return {
+ name = "mq_timedsend.return"
+ }
+# mq_unlink __________________________________________________
+/*
+ * asmlinkage long
+ * sys_mq_unlink(const char __user *u_name)
+ */
+probe kernel.syscall.mq_unlink =
+ kernel.function("sys_mq_unlink") {
+ name = "mq_unlink"
+ u_name_uaddr = $u_name
+ }
+probe kernel.syscall.mq_unlink.return =
+ kernel.function("sys_mq_unlink").return {
+ name = "mq_unlink.return"
+ }
+# mremap _____________________________________________________
+/*
+ * asmlinkage unsigned long
+ * sys_mremap(unsigned long addr,
+ * unsigned long old_len,
+ * unsigned long new_len,
+ * unsigned long flags,
+ * unsigned long new_addr)
+ */
+probe kernel.syscall.mremap =
+ kernel.function("sys_mremap") {
+ name = "mremap"
+ old_address = $addr
+ old_size = $old_len
+ new_size = $new_len
+ flags = $flags
+ new_address = $new_addr
+ }
+probe kernel.syscall.mremap.return =
+ kernel.function("sys_mremap").return {
+ name = "mremap.return"
+ }
+# msgctl _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_msgctl (int msqid,
+ * int cmd,
+ * struct msqid_ds __user *buf)
+ */
+probe kernel.syscall.msgctl =
+ kernel.function("sys_msgctl") {
+ name = "msgctl"
+ msqid = $msqid
+ cmd = $cmd
+ buf_uaddr = $buf
+ }
+probe kernel.syscall.msgctl.return =
+ kernel.function("sys_msgctl").return {
+ name = "msgctl.return"
+ }
+# msgget _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_msgget (key_t key,
+ * int msgflg)
+ */
+probe kernel.syscall.msgget =
+ kernel.function("sys_msgget") {
+ name = "msgget"
+ key = $key
+ msgflg = $msgflg
+ msgflg_str = _sys_open_flag_str($msgflg)
+ }
+probe kernel.syscall.msgget.return =
+ kernel.function("sys_msgget").return {
+ name = "msgget.return"
+ }
+# msgrcv _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_msgrcv (int msqid,
+ * struct msgbuf __user *msgp,
+ * size_t msgsz,
+ * long msgtyp,
+ * int msgflg)
+ */
+probe kernel.syscall.msgrcv =
+ kernel.function("sys_msgrcv") {
+ name = "msgrcv"
+ msqid = $msqid
+ msgp_uaddr = $msgp
+ msgsz = $msgsz
+ msgtyp = $msgtyp
+ msgflg = $msgflg
+ }
+probe kernel.syscall.msgrcv.return =
+ kernel.function("sys_msgrcv").return {
+ name = "msgrcv.return"
+ }
+# msgsnd _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_msgsnd (int msqid,
+ * struct msgbuf __user *msgp,
+ * size_t msgsz,
+ * int msgflg)
+ */
+probe kernel.syscall.msgsnd =
+ kernel.function("sys_msgsnd") {
+ name = "msgsnd"
+ msqid = $msqid
+ msgp_uaddr = $msgp
+ msgsz = $msgsz
+ msgflg = $msgflg
+ }
+probe kernel.syscall.msgsnd.return =
+ kernel.function("sys_msgsnd").return {
+ name = "msgsnd.return"
+ }
+# msync ______________________________________________________
+/*
+ * asmlinkage long
+ * sys_msync(unsigned long start,
+ * size_t len,
+ * int flags)
+ */
+probe kernel.syscall.msync =
+ kernel.function("sys_msync") {
+ name = "msync"
+ start = $start
+ length = $len
+ flags = $flags
+ flags_str = _msync_flag_str($flags)
+ }
+probe kernel.syscall.msync.return =
+ kernel.function("sys_msync").return {
+ name = "msync.return"
+ }
+# munlock ____________________________________________________
+/*
+ * asmlinkage long
+ * sys_munlock(unsigned long start,
+ * size_t len)
+ */
+probe kernel.syscall.munlock =
+ kernel.function("sys_munlock") {
+ name = "munlock"
+ addr = $start
+ len = $len
+ }
+probe kernel.syscall.munlock.return =
+ kernel.function("sys_munlock").return {
+ name = "munlock.return"
+ }
+# munlockall _________________________________________________
+/*
+ * asmlinkage long
+ * sys_munlockall(void)
+ */
+probe kernel.syscall.munlockall =
+ kernel.function("sys_munlockall") {
+ name = "munlockall"
+ }
+probe kernel.syscall.munlockall.return =
+ kernel.function("sys_munlockall").return {
+ name = "munlockall.return"
+ }
+# munmap _____________________________________________________
+/*
+ * asmlinkage long
+ * sys_munmap(unsigned long addr,
+ * size_t len)
+ */
+probe kernel.syscall.munmap =
+ kernel.function("sys_munmap") {
+ name = "munmap"
+ start = $addr
+ length = $len
+ }
+probe kernel.syscall.munmap.return =
+ kernel.function("sys_munmap").return {
+ name = "munmap.return"
+ }