diff options
author | hunt <hunt> | 2006-07-11 20:38:35 +0000 |
---|---|---|
committer | hunt <hunt> | 2006-07-11 20:38:35 +0000 |
commit | 2c5335822bbbc0589ebe2a1815a295e6df2317c7 (patch) | |
tree | 6efd8a408ca46696a5da26f84411ae79ccd38627 | |
parent | 6d66b0c445045e559c2b7eaf9a6931e24a90cc6a (diff) | |
download | systemtap-steved-2c5335822bbbc0589ebe2a1815a295e6df2317c7.tar.gz systemtap-steved-2c5335822bbbc0589ebe2a1815a295e6df2317c7.tar.xz systemtap-steved-2c5335822bbbc0589ebe2a1815a295e6df2317c7.zip |
*** empty log message ***
-rw-r--r-- | tapset/aux_syscalls.stp | 41 | ||||
-rw-r--r-- | tapset/conversions.stp | 12 | ||||
-rw-r--r-- | tapset/i686/syscalls.stp | 189 | ||||
-rw-r--r-- | tapset/ppc64/syscalls.stp | 16 | ||||
-rw-r--r-- | tapset/string.stp | 4 | ||||
-rw-r--r-- | tapset/syscalls.stp | 1394 | ||||
-rw-r--r-- | tapset/syscalls2.stp | 323 | ||||
-rw-r--r-- | tapset/x86_64/syscalls.stp | 234 |
8 files changed, 1010 insertions, 1203 deletions
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index cfbe3192..e50bb89e 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -531,7 +531,7 @@ function __get_argv:string(a:long) if (vstr == NULL) break; - rc = _stp_strncpy_from_user(buf, vstr, 80); + rc = _stp_strncpy_from_user(buf, vstr, 79); if (rc <= 0) break; @@ -584,8 +584,8 @@ function __string:string (a:long) * Return a integer member value of struct * timezone user space pointer parameter * CALLERS: - * kernel.syscall.gettimeofday - * kernel.syscall.settimeofday + * syscall.gettimeofday + * syscall.settimeofday */ /* function __uget_tz_m:long(u_addr:long,member:long) @@ -606,7 +606,7 @@ function __uget_tz_m:long(u_addr:long,member:long) * Return integer member value of struct * timex user space pointer parameter * CALLERS: - * kernel.syscall.adjtimex + * syscall.adjtimex */ /* function __uget_timex_m:long(u_addr:long,member:long) @@ -652,7 +652,7 @@ function __uget_timex_m:long(u_addr:long,member:long) * Return the clock_t member value of the * struct tms user space pointer parameter * CALLERS: - * kernel.syscall.times + * syscall.times */ /* %{ #include <linux/times.h> %} @@ -681,7 +681,7 @@ function __uget_tms_m:long(u_addr:long,member:long) * Return a time_t / long member value of the * struct timespec user space pointer parameter * CALLERS: - * kernel.syscall.nanosleep + * syscall.nanosleep */ /* function __uget_ts_m:long(u_addr:long,member:long) @@ -704,7 +704,7 @@ function __uget_ts_m:long(u_addr:long,member:long) * of the struct timex.mode member of adjtimex * consult `man adjtimex` for more information * CALLERS: - * kernel.syscall.adjtimex + * syscall.adjtimex */ function _adjtx_mode_str(f) { if((f & 32769) == 32769) bs="ADJ_OFFSET_SINGLESHOT|".bs @@ -723,8 +723,8 @@ function _adjtx_mode_str(f) { * of the how argument given in *sigprocmask * consult `man sigprocmask` for more info * CALLERS: - * kernel.syscall.sigprocmask - * kernel.syscall.rt_sigprocmask + * syscall.sigprocmask + * syscall.rt_sigprocmask */ function _sigprocmask_how_str(how) { if(how==0) return "SIG_BLOCK" @@ -738,8 +738,8 @@ function _sigprocmask_how_str(how) { * of the which argument given to setitimer * consult `man setitimer` for more info * CALLERS: - * kernel.syscall.getitimer - * kernel.syscall.setitimer + * syscall.getitimer + * syscall.setitimer */ function _itimer_which_str(which) { if(which==0) return "ITIMER_REAL" @@ -753,11 +753,11 @@ function _itimer_which_str(which) { * of the clockid argument given to create_timer * consult `man create_timer` for more info * CALLERS: - * kernel.syscall.timer_create - * kernel.syscall.clock_settime - * kernel.syscall.clock_gettime - * kernel.syscall.clock_getres - * kernel.syscall.clock_nanosleep + * syscall.timer_create + * syscall.clock_settime + * syscall.clock_gettime + * syscall.clock_getres + * syscall.clock_nanosleep */ function _get_wc_str(wc) { if(wc==0) return "CLOCK_REALTIME" @@ -1144,6 +1144,15 @@ function _madvice_advice_str(behavior) { return "" } +function _fadvice_advice_str(behavior) { + if(behavior==0x00000000) return "FADV_NORMAL" + if(behavior==0x00000001) return "FADV_RANDOM" + if(behavior==0x00000002) return "FADV_SEQUENTIAL" + if(behavior==0x00000003) return "FADV_WILLNEED" + if(behavior==0x00000004) return "FADV_DONTNEED" + return "" +} + function _fcntl_cmd_str(cmd) { if(cmd==0x00000000) return "F_DUPFD" if(cmd==0x00000001) return "F_GETFD" diff --git a/tapset/conversions.stp b/tapset/conversions.stp index 96c7162a..c311d25a 100644 --- a/tapset/conversions.stp +++ b/tapset/conversions.stp @@ -51,14 +51,8 @@ function user_string_warn:string (addr:long) %{ /* pure */ %} function user_string_quoted:string (addr:long) %{ /* pure */ - if (THIS->addr == 0) + if (THIS->addr == 0) strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN); - else { - *THIS->__retvalue = '\"'; - if (_stp_strncpy_from_user (THIS->__retvalue+1, - (const char __user*) (uintptr_t) THIS->addr, MAXSTRINGLEN-2) < 0) - strlcpy (THIS->__retvalue, "<unknown>", MAXSTRINGLEN); - else - strlcat(THIS->__retvalue, "\"", MAXSTRINGLEN); - } + else + _stp_text_str(THIS->__retvalue, (char *)(uintptr_t)THIS->addr, MAXSTRINGLEN, 1, 1); %} diff --git a/tapset/i686/syscalls.stp b/tapset/i686/syscalls.stp index 340fca6f..a7dfa4fc 100644 --- a/tapset/i686/syscalls.stp +++ b/tapset/i686/syscalls.stp @@ -5,7 +5,7 @@ probe syscall.getgroups16 = kernel.function("sys_getgroups16") { name = "getgroups16" size = $gidsetsize list_uaddr = $grouplist - argstr = sprintf("%d, [%p]", size, list_uaddr) + argstr = sprintf("%d, %p", size, list_uaddr) } probe syscall.getgroups16.return = kernel.function("sys_getgroups16").return { name = "getgroups16" @@ -30,37 +30,6 @@ probe syscall.setgroups16.return = kernel.function("sys_setgroups16").return { } -# 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" - retstr = returnstr(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" -# retstr = returnstr(1) -#} # quotactl ___________________________________________________ # @@ -77,7 +46,7 @@ probe syscall.quotactl = kernel.function("sys_quotactl") { special_str = user_string($special) id = $id addr_uaddr = $addr - argstr = sprintf("%s, %s, %p, [%p]", cmd_str, special_str, + argstr = sprintf("%s, %s, %p, %p", cmd_str, special_str, id, addr_uaddr) } probe syscall.quotactl.return = kernel.function("sys_quotactl").return { @@ -98,7 +67,7 @@ probe syscall.request_key = kernel.function("sys_request_key") { description_uaddr = $_description callout_info_uaddr = $_callout_info destringid = $destringid - argstr = sprintf("[%p], [%p], [%p], %p", type_uaddr, + argstr = sprintf("%p, %p, %p, %p", type_uaddr, description_uaddr, callout_info_uaddr, destringid) } probe syscall.request_key.return = kernel.function("sys_request_key").return { @@ -133,7 +102,7 @@ probe syscall.fcntl64.return = kernel.function("sys_fcntl64").return { probe syscall.get_thread_area = kernel.function("sys_get_thread_area") { name = "get_thread_area" u_info_uaddr = $u_info - argstr = sprintf("[%p]", u_info_uaddr) + argstr = sprintf("%p", u_info_uaddr) } probe syscall.get_thread_area.return = kernel.function("sys_get_thread_area").return { @@ -193,56 +162,21 @@ probe syscall.inotify_rm_watch.return = name = "inotify_rm_watch" retstr = returnstr(1) } + # iopl _______________________________________________________ -/* - * asmlinkage long - * sys_iopl(unsigned long unused) - */ +# long sys_iopl(unsigned long unused) +# NOTE. This function is only in i386 and x86_64 and its args vary +# between those two archs. +# probe syscall.iopl = kernel.function("sys_iopl") { name = "iopl" - level = $unused - argstr = sprint($unused) + argstr = "" } probe syscall.iopl.return = kernel.function("sys_iopl").return { name = "iopl" retstr = returnstr(1) } -# ioprio_get _________________________________________________ -/* - * asmlinkage long - * sys_ioprio_get(int which, - * int who) - */ -probe syscall.ioprio_get = kernel.function("sys_ioprio_get") { - name = "ioprio_get" - which = $which - who = $who - argstr = sprintf("%d, %d", $which, $who) -} -probe syscall.ioprio_get.return = - kernel.function("sys_ioprio_get").return { - name = "ioprio_get" - retstr = returnstr(1) -} -# ioprio_set _________________________________________________ -/* - * asmlinkage long - * sys_ioprio_set(int which, - * int who, - * int ioprio) - */ -probe syscall.ioprio_set = kernel.function("sys_ioprio_set") { - name = "ioprio_set" - which = $which - who = $who - ioprio = $ioprio - argstr = sprintf("%d, %d, %d", $which, $who, $ioprio) -} -probe syscall.ioprio_set.return = - kernel.function("sys_ioprio_set").return { - name = "ioprio_set" - retstr = returnstr(1) -} + # ipc ________________________________________________________ /* * asmlinkage int @@ -261,7 +195,7 @@ probe syscall.ipc = kernel.function("sys_ipc") { third = $third ptr_uaddr = $ptr fifth = $fifth - argstr = sprintf("%d, %d, %d, %d, [%p], %d", $call, $first, + argstr = sprintf("%d, %d, %d, %d, %p, %d", $call, $first, $second, $third, ptr_uaddr, $fifth) } probe syscall.ipc.return = kernel.function("sys_ipc").return { @@ -275,7 +209,7 @@ probe syscall.lstat64 = kernel.function("sys_lstat64") { name = "lstat" filename = user_string($filename) buf_uaddr = $statbuf - argstr = sprintf("\"%s\", [%p]", filename, $statbuf) + argstr = sprintf("\"%s\", %p", filename, $statbuf) } probe syscall.lstat64.return = kernel.function("sys_lstat64").return { name = "lstat" @@ -289,50 +223,13 @@ probe syscall.lstat64.return = kernel.function("sys_lstat64").return { probe syscall.olduname = kernel.function("sys_olduname") { name = "olduname" name_uaddr = $name - argstr = sprintf("[%p]", name_uaddr) + argstr = sprintf("%p", name_uaddr) } probe syscall.olduname.return = kernel.function("sys_olduname").return { name = "olduname" retstr = returnstr(1) } -# rt_sigreturn _______________________________________________ -/* - * asmlinkage int - * sys_rt_sigreturn(unsigned long __unused) - */ -probe syscall.rt_sigreturn = kernel.function("sys_rt_sigreturn") { - name = "rt_sigreturn" - __unused = $__unused - argstr = sprint($__unused) -} -probe syscall.rt_sigreturn.return = - kernel.function("sys_rt_sigreturn").return { - name = "rt_sigreturn" - retstr = returnstr(1) -} -# sched_setaffinity __________________________________________ -/* - * asmlinkage long - * sys_sched_setaffinity(pid_t pid, - * unsigned int len, - * unsigned long __user *user_mask_ptr) - */ -probe syscall.sched_setaffinity = - kernel.function("sys_sched_setaffinity") { - name = "sched_setaffinity" - pid = $pid - /* - * doesnt like $len on x86_64 ???? - */ - len = $len - mask_uaddr = $user_mask_ptr - argstr = sprintf("%d, %d, [%p]", $pid, $len, mask_uaddr) -} -probe syscall.sched_setaffinity.return = - kernel.function("sys_sched_setaffinity").return { - name = "sched_setaffinity" - retstr = returnstr(1) -} + # sched_setparam _____________________________________________ /* * asmlinkage long @@ -344,7 +241,7 @@ probe syscall.sched_setparam = name = "sched_setparam" pid = $pid p_uaddr = $param - argstr = sprintf("%d, [%p]", $pid, p_uaddr) + argstr = sprintf("%d, %p", $pid, p_uaddr) } probe syscall.sched_setparam.return = kernel.function("do_sched_setscheduler").return { @@ -365,7 +262,7 @@ probe syscall.sched_setscheduler = policy = $policy policy_str = _sched_policy_str($policy) p_uaddr = $param - argstr = sprintf("%d, %s, [%p]", $pid, policy_str, p_uaddr) + argstr = sprintf("%d, %s, %p", $pid, policy_str, p_uaddr) } probe syscall.sched_setscheduler.return = kernel.function("do_sched_setscheduler").return { @@ -381,7 +278,7 @@ probe syscall.set_thread_area = kernel.function("sys_set_thread_area") { name = "set_thread_area" u_info_uaddr = $u_info - argstr = sprintf("[%p]", u_info_uaddr) + argstr = sprintf("%p", u_info_uaddr) } probe syscall.set_thread_area.return = kernel.function("sys_set_thread_area").return { @@ -423,50 +320,49 @@ probe syscall.shmat = shmid = $shmid shmaddr_uaddr = $shmaddr shmflg = $shmflg - argstr = sprintf("%d, [%p], %d", $shmid, shmaddr_uaddr, $shmflg) + argstr = sprintf("%d, %p, %d", $shmid, shmaddr_uaddr, $shmflg) } probe syscall.shmat.return = kernel.function("sys_shmat").return { name = "shmat" retstr = returnstr(1) } + # sigaction __________________________________________________ -/* - * asmlinkage int - * sys_sigaction(int sig, - * const struct old_sigaction __user *act, - * struct old_sigaction __user *oact) - */ +# int sys_sigaction(int sig, +# const struct old_sigaction __user *act, +# struct old_sigaction __user *oact) +# probe syscall.sigaction = kernel.function("sys_sigaction") { name = "sigaction" sig = $sig act_uaddr = $act oact_uaddr = $oact - argstr = sprintf("%s, [%p], [%p]", _signal_name($sig), - act_uaddr, oact_uaddr) + # FIXME - decode $act + argstr = sprintf("%s, %p, %p", _signal_name($sig), $act, $oact) } probe syscall.sigaction.return = kernel.function("sys_sigaction").return { name = "sigaction" retstr = returnstr(1) } + # sigaltstack ________________________________________________ -/* - * asmlinkage int - * sys_sigaltstack(unsigned long ebx) - */ -probe syscall.sigaltstack = - kernel.function("sys_sigaltstack") { +# int sys_sigaltstack(unsigned long ebx) +# +# NOTE: args vary between archs. +# +probe syscall.sigaltstack = kernel.function("sys_sigaltstack") { name = "sigaltstack" ebx = $ebx argstr = sprintf("%p", $ebx) } -probe syscall.sigaltstack.return = - kernel.function("sys_sigaltstack").return { +probe syscall.sigaltstack.return = kernel.function("sys_sigaltstack").return { name = "sigaltstack" retstr = returnstr(1) } + # sigreturn __________________________________________________ /* * asmlinkage int @@ -509,28 +405,13 @@ probe syscall.stat64 = kernel.function("sys_stat64") { name = "stat" filename = user_string($filename) buf_uaddr = $statbuf - argstr = sprintf("\"%s\", [%p]", filename, $statbuf) + argstr = sprintf("\"%s\", %p", filename, $statbuf) } probe syscall.stat64.return = kernel.function("sys_stat64").return { name = "stat" retstr = returnstr(1) } -# umask ______________________________________________________ -/* - * asmlinkage long - * sys_umask(int mask) - */ -probe syscall.umask = kernel.function("sys_umask") { - name = "umask" - mask = $mask - argstr = sprintf("%#o", $mask) -} -probe syscall.umask.return = - kernel.function("sys_umask").return { - name = "umask" - retstr = returnstr(3) -} # vm86 _______________________________________________________ /* * asmlinkage int diff --git a/tapset/ppc64/syscalls.stp b/tapset/ppc64/syscalls.stp index b487fbc8..5dc993c9 100644 --- a/tapset/ppc64/syscalls.stp +++ b/tapset/ppc64/syscalls.stp @@ -601,8 +601,7 @@ probe syscall.compat_sys_select.return = } # compat_rt_sigaction _______________________________________________ # -# asmlinkage long -# compat_sys_rt_sigaction(int sig, +# long compat_sys_rt_sigaction(int sig, # const struct sigaction __user *act, # struct sigaction __user *oact, # size_t sigsetsize) @@ -614,8 +613,7 @@ probe syscall.compat_rt_sigaction = kernel.function("compat_sys_rt_sigaction")?, act_uaddr = $act oact_uaddr = $oact sigsetsize = $sigsetsize - argstr = sprintf("%s, [%p], [%p], %p", _signal_name($sig), - act_uaddr, oact_uaddr, sigsetsize) + argstr = sprintf("%s, %p, %p, %d", _signal_name($sig), $act, $oact, $sigsetsize) } probe syscall.compat_rt_sigaction.return = kernel.function("compat_sys_rt_sigaction").return ? , @@ -1266,8 +1264,7 @@ probe syscall.sys32_sigaction = kernel.function("sys32_sigaction") ? { sig = $sig act_uaddr = $act oact_uaddr = $oact - argstr = sprintf("%s, [%p], [%p]", _signal_name($sig), - act_uaddr, oact_uaddr) + argstr = sprintf("%s, %p, %p", _signal_name($sig), $act, $oact) } probe syscall.sys32_sigaction.return = kernel.function("sys32_sigaction").return ? { @@ -1489,8 +1486,7 @@ probe syscall.sys32_rt_sigaction = kernel.function("sys32_rt_sigaction") ? { act_uaddr = $act oact_uaddr = $oact sigsetsize = $sigsetsize - argstr = sprintf("%s, [%p], [%p], %p", _signal_name($sig), - act_uaddr, oact_uaddr, sigsetsize) + argstr = sprintf("%s, %p, %p, %d", _signal_name($sig), $act, $oact, $sigsetsize) } probe syscall.sys32_rt_sigaction.return = kernel.function("sys32_rt_sigaction").return ? { @@ -1509,8 +1505,8 @@ probe syscall.sys32_rt_sigprocmask = kernel.function("sys32_rt_sigprocmask") ? { set_uaddr = $set oset_uaddr = $oset sigsetsize = $sigsetsize - argstr = sprintf("%s, [%p], [%p], %p", how_str, set_uaddr, - oset_uaddr, sigsetsize) + argstr = sprintf("%s, %p, %p, %d", how_str, $set, + $oset, $sigsetsize) } probe syscall.sys32_rt_sigprocmask.return = kernel.function("sys32_rt_sigprocmask").return ? { diff --git a/tapset/string.stp b/tapset/string.stp index a4cff3e4..28f8e2dc 100644 --- a/tapset/string.stp +++ b/tapset/string.stp @@ -55,12 +55,12 @@ function isinstr:long(s1:string,s2:string) %{ /* pure */ */ function text_str:string(input:string) %{ /* pure */ - _stp_text_str(THIS->__retvalue, THIS->input, 0, 0); + _stp_text_str(THIS->__retvalue, THIS->input, 0, 0, 0); %} function text_strn:string(input:string, len:long, quoted:long) %{ /* pure */ - _stp_text_str(THIS->__retvalue, THIS->input, THIS->len, THIS->quoted); + _stp_text_str(THIS->__retvalue, THIS->input, THIS->len, THIS->quoted, 0); %} diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp index 0d4f85bd..0e09bda1 100644 --- a/tapset/syscalls.stp +++ b/tapset/syscalls.stp @@ -15,10 +15,12 @@ * * 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. Set in entry probes only. +* important args. Set in entry probes only. Values enclosed in +* square brackets are user-space pointers. Values in curly +* braces are decoded structs. * * retstr - a string containing the return value in an easy-to-read format. -* Set in return probes only. +* Set in return probes only. */ @@ -51,6 +53,43 @@ probe syscall.access.return = kernel.function("sys_access").return { retstr = returnstr(1) } +# acct _______________________________________________________ +# long sys_acct(const char __user *name) +probe syscall.acct = kernel.function("sys_acct") { + name = "acct" + filename = user_string($name) + argstr = user_string_quoted($name) +} +probe syscall.acct.return = kernel.function("sys_acct").return { + name = "acct" + retstr = returnstr(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 = sprintf("%s, %s, %s, %d, %d", + user_string_quoted($_type), + user_string_quoted($_description), + text_strn(user_string($_payload),20,1), + $plen, $ringid) +} +probe syscall.add_key.return = kernel.function("sys_add_key").return { + name = "add_key" + retstr = returnstr(1) +} + # adjtimex ___________________________________________________ # long sys_adjtimex(struct timex __user *txc_p) probe syscall.adjtimex = kernel.function("sys_adjtimex") { @@ -251,7 +290,7 @@ probe syscall.clock_getres = kernel.function("sys_clock_getres") { clk_id = $which_clock clk_id_str = _get_wc_str($which_clock) res_uaddr = $tp - #fixme argstr + argstr = sprintf("%s, %p", _get_wc_str($which_clock), $tp) } probe syscall.clock_getres.return = kernel.function("sys_clock_getres").return { name = "clock_getres" @@ -265,51 +304,53 @@ probe syscall.clock_gettime = kernel.function("sys_clock_gettime") { clk_id = $which_clock clk_id_str = _get_wc_str($which_clock) tp_uaddr = $tp - #fixme argstr + argstr = sprintf("%s, %p", _get_wc_str($which_clock), $tp) } probe syscall.clock_gettime.return = kernel.function("sys_clock_gettime").return { name = "clock_gettime" retstr = returnstr(1) } + # 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" - } +# long sys_clock_nanosleep(clockid_t which_clock, +# int flags, +# const struct timespec __user *rqtp, +# struct timespec __user *rmtp) +# +probe 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 + if ($flags == 0) + flag_str = "0" + else + flag_str = "TIMER_ABSTIME" + rqtp_uaddr = $rqtp + rmtp_uaddr = $rmtp + argstr = sprintf("%s, %s, %s, %p", clock_id_str, flag_str, + _struct_timespec_u($rqtp), $rmtp) +} +probe syscall.clock_nanosleep.return = kernel.function("sys_clock_nanosleep").return { + name = "clock_nanosleep" + retstr = returnstr(1) +} + # 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" - } +# long sys_clock_settime(clockid_t which_clock, +# const struct timespec __user *tp) +# +probe 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 + argstr = sprintf("%s, %s", clk_id_str, _struct_timespec_u($tp)) +} +probe syscall.clock_settime.return = kernel.function("sys_clock_settime").return { + name = "clock_settime" + retstr = returnstr(1) +} # close ______________________________________________________ # long sys_close(unsigned int fd) @@ -387,46 +428,40 @@ probe syscall.epoll_create.return = kernel.function("sys_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" - } +# +# long sys_epoll_ctl(int epfd, int op, int fd, struct epoll_event __user *event) +# +probe 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 + argstr = sprintf("%d, %s, %d, %p", $epfd, _opoll_op_str($op), $fd, $event) +} +probe syscall.epoll_ctl.return = kernel.function("sys_epoll_ctl").return { + name = "epoll_ctl" + retstr = returnstr(1) +} + # 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" - } +# +# long sys_epoll_wait(int epfd, struct epoll_event __user *events, +# int maxevents, int timeout) +# +probe syscall.epoll_wait = kernel.function("sys_epoll_wait") { + name = "epoll_wait" + epfd = $epfd + events_uaddr = $events + maxevents = $maxevents + timeout = $timeout + argstr = sprintf("%d, %p, %d, %d", $epfd, $events, $maxevents, $timeout) +} +probe syscall.epoll_wait.return = kernel.function("sys_epoll_wait").return { + name = "epoll_wait" + retstr = returnstr(1) +} # execve _____________________________________________________ # int sys_execve(struct pt_regs regs) @@ -458,58 +493,47 @@ probe syscall.exit = kernel.function("do_exit") { probe syscall.exit.return = end {} # 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 - } +# void sys_exit_group(int error_code) +# +probe syscall.exit_group = kernel.function("sys_exit_group") { + name = "exit_group" + status = $error_code + argstr = sprint($error_code) +} -probe kernel.syscall.exit_group.return = end {} +probe syscall.exit_group.return = end {} # 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" - } +# long sys_fadvise64(int fd, loff_t offset, size_t len, int advice) +# +probe syscall.fadvise64 = kernel.function("sys_fadvise64") { + name = "fadvise64" + fs = $fd + offset = $offset + len = $len + advice = $advice + argstr = sprintf("%d, %d, %d, %s", $fd, $offset, $len, _fadvice_advice_str($advice)) +} +probe syscall.fadvise64.return = kernel.function("sys_fadvise64").return { + name = "fadvise64" + retstr = returnstr(1) +} + # 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" - } +# long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice) +# +probe syscall.fadvise64_64 = kernel.function("sys_fadvise64_64") { + name = "fadvise64_64" + fs = $fd + offset = $offset + len = $len + advice = $advice + argstr = sprintf("%d, %d, %d, %s", $fd, $offset, $len, _fadvice_advice_str($advice)) +} +probe syscall.fadvise64_64.return = kernel.function("sys_fadvise64_64").return { + name = "fadvise64_64" + retstr = returnstr(1) +} # fchdir _____________________________________________________ # long sys_fchdir(unsigned int fd) @@ -601,7 +625,7 @@ probe syscall.fgetxattr = kernel.function("sys_fgetxattr") { name2 = user_string($name) value_uaddr = $value size = $size - argstr = sprintf("%d, %s, [%p], %d", filedes, user_string_quoted($name), value_uaddr, size) + argstr = sprintf("%d, %s, %p, %d", filedes, user_string_quoted($name), value_uaddr, size) } probe syscall.fgetxattr.return = kernel.function("sys_fgetxattr").return { name = "fgetxattr" @@ -614,7 +638,7 @@ probe syscall.flistxattr = kernel.function("sys_flistxattr") { filedes = $fd list_uaddr = $list size = $size - argstr = sprintf("%d, [%p], %d", filedes, list_uaddr, size) + argstr = sprintf("%d, %p, %d", filedes, list_uaddr, size) } probe syscall.flistxattr.return = kernel.function("sys_flistxattr").return { name = "flistxattr" @@ -695,7 +719,7 @@ probe syscall.fsetxattr = kernel.function("sys_fsetxattr") { value_uaddr = $value size = $size flags = $flags - argstr = sprintf("%d, %s, [%p], %d, %p", filedes, user_string_quoted($name), value_uaddr, size, flags) + argstr = sprintf("%d, %s, %p, %d, %p", filedes, user_string_quoted($name), value_uaddr, size, flags) } probe syscall.fsetxattr.return = kernel.function("sys_fsetxattr").return { name = "fsetxattr" @@ -716,7 +740,7 @@ probe syscall.fstat = name = "fstat" filedes = $fd buf_uaddr = $statbuf - argstr = sprintf("%d, [%p]", $fd, $statbuf) + argstr = sprintf("%d, %p", $fd, $statbuf) } probe syscall.fstat.return = kernel.function("sys_fstat").return ?, @@ -734,7 +758,7 @@ probe syscall.fstatfs = kernel.function("sys_fstatfs") { name = "fstatfs" fd = $fd buf_uaddr = $buf - argstr = sprintf("%d, [%p]", fd, buf_uaddr) + argstr = sprintf("%d, %p", fd, buf_uaddr) } probe syscall.fstatfs.return = kernel.function("sys_fstatfs").return { name = "fstatfs" @@ -748,7 +772,7 @@ probe syscall.fstatfs64 = kernel.function("sys_fstatfs64") { fd = $fd sz = $sz buf_uaddr = $buf - argstr = sprintf("%d, %d, [%p]", fd, sz, buf_uaddr) + argstr = sprintf("%d, %d, %p", fd, sz, buf_uaddr) } probe syscall.fstatfs64.return = kernel.function("sys_fstatfs64").return { name = "fstatfs" @@ -826,7 +850,7 @@ probe syscall.getcwd = kernel.function("sys_getcwd") { name = "getcwd" buf_uaddr = $buf size = $size - argstr = sprintf("[%p], %d", buf_uaddr, size) + argstr = sprintf("%p, %d", buf_uaddr, size) } probe syscall.getcwd.return = kernel.function("sys_getcwd").return { name = "getcwd" @@ -842,7 +866,7 @@ probe syscall.getdents = kernel.function("sys_getdents") { fd = $fd dirp_uaddr = $dirent count = $count - argstr = sprintf("%d, [%p], %d", fd, dirp_uaddr, count) + argstr = sprintf("%d, %p, %d", fd, dirp_uaddr, count) } probe syscall.getdents.return = kernel.function("sys_getdents").return { name = "getdents" @@ -858,7 +882,7 @@ probe syscall.getdents64 = kernel.function("sys_getdents64") { fd = $fd dirp_uaddr = $dirent count = $count - argstr = sprintf("%d, [%p], %d", fd, dirp_uaddr, count) + argstr = sprintf("%d, %p, %d", fd, dirp_uaddr, count) } probe syscall.getdents64.return = kernel.function("sys_getdents64").return { name = "getdents" @@ -931,7 +955,7 @@ probe syscall.getgroups = kernel.function("sys_getgroups") { name = "getgroups" size = $gidsetsize list_uaddr = $grouplist - argstr = sprintf("%d, [%p]", size, list_uaddr) + argstr = sprintf("%d, %p", size, list_uaddr) } probe syscall.getgroups.return = kernel.function("sys_getgroups").return { name = "getgroups" @@ -944,7 +968,7 @@ probe syscall.gethostname = kernel.function("sys_gethostname") { name = "gethostname" name_uaddr = $name len = $len - argstr = sprintf ("[%p], %d", name_uaddr, len) + argstr = sprintf ("%p, %d", name_uaddr, len) } probe syscall.gethostname.return = kernel.function("sys_gethostname").return { name = "gethostname" @@ -957,31 +981,50 @@ probe syscall.getitimer = kernel.function("sys_getitimer") { name = "getitimer" which = $which value_uaddr = $value - argstr = sprintf("%s, [%p]", _itimer_which_str(which), value_uaddr) + argstr = sprintf("%s, %p", _itimer_which_str($which), $value) } probe syscall.getitimer.return = kernel.function("sys_getitimer").return { name = "getitimer" retstr = returnstr(1) } +# get_mempolicy ______________________________________________ +# long sys_get_mempolicy(int __user *policy, +# unsigned long __user *nmask, +# unsigned long maxnode, +# unsigned long addr, +# unsigned long flags) +# +probe syscall.get_mempolicy = kernel.function("sys_get_mempolicy") ? { + name = "get_mempolicy" + policy_uaddr = $policy + nmask_uaddr = $nmask + maxnode = $maxnode + addr = $addr + flags = $flags + argstr = sprintf("%p, %p, %d, %p, %d", policy_uaddr, + nmask_uaddr, $maxnode, $addr, $flags) +} +probe syscall.get_mempolicy.return = + kernel.function("sys_get_mempolicy").return ? { + name = "get_mempolicy" + retstr = returnstr(1) +} + # 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" - } +# long sys_getpeername(int fd, struct sockaddr __user *usockaddr, int __user *usockaddr_len) +# +probe syscall.getpeername = kernel.function("sys_getpeername") { + name = "getpeername" + s = $fd + name_uaddr = $usockaddr + namelen_uaddr = $usockaddr_len + argstr = sprintf("%d, %p, %p", $fd, $usockaddr, $usockaddr_len) +} +probe syscall.getpeername.return = kernel.function("sys_getpeername").return { + name = "getpeername" + retstr = returnstr(1) +} # getpgid ____________________________________________________ # long sys_getpgid(void) @@ -1044,7 +1087,7 @@ probe syscall.getresgid = kernel.function("sys_getresgid") { rgid_uaddr = $rgid egid_uaddr = $egid sgid_uaddr = $sgid - argstr = sprintf("[%p], [%p], [%p]", rgid_uaddr, egid_uaddr, sgid_uaddr) + argstr = sprintf("%p, %p, %p", rgid_uaddr, egid_uaddr, sgid_uaddr) } probe syscall.getresgid.return = kernel.function("sys_getresgid").return { name = "getresgid" @@ -1060,7 +1103,7 @@ probe syscall.getresgid16 = kernel.function("sys_getresgid16") ? { rgid_uaddr = $rgid egid_uaddr = $egid sgid_uaddr = $sgid - argstr = sprintf("[%p], [%p], [%p]", rgid_uaddr, egid_uaddr, sgid_uaddr) + argstr = sprintf("%p, %p, %p", rgid_uaddr, egid_uaddr, sgid_uaddr) } probe syscall.getresgid16.return = kernel.function("sys_getresgid16").return ? { name = "getresgid16" @@ -1076,7 +1119,7 @@ probe syscall.getresuid = kernel.function("sys_getresuid") { ruid_uaddr = $ruid euid_uaddr = $euid suid_uaddr = $suid - argstr = sprintf("[%p], [%p], [%p]", ruid_uaddr, euid_uaddr, suid_uaddr) + argstr = sprintf("%p, %p, %p", ruid_uaddr, euid_uaddr, suid_uaddr) } probe syscall.getresuid.return = kernel.function("sys_getresuid").return { name = "getresuid" @@ -1092,7 +1135,7 @@ probe syscall.getresuid16 = kernel.function("sys_getresuid16") ? { ruid_uaddr = $ruid euid_uaddr = $euid suid_uaddr = $suid - argstr = sprintf("[%p], [%p], [%p]", ruid_uaddr, euid_uaddr, suid_uaddr) + argstr = sprintf("%p, %p, %p", ruid_uaddr, euid_uaddr, suid_uaddr) } probe syscall.getresuid16.return = kernel.function("sys_getresuid16").return ? { name = "getresuid16" @@ -1105,7 +1148,7 @@ probe syscall.getrlimit = kernel.function("sys_getrlimit") { name = "getrlimit" resource = $resource rlim_uaddr = $rlim - argstr = sprintf("%s, [%p]", _rlimit_resource_str($resource), rlim_uaddr) + argstr = sprintf("%s, %p", _rlimit_resource_str($resource), rlim_uaddr) } probe syscall.getrlimit.return = kernel.function("sys_getrlimit").return { name = "getrlimit" @@ -1118,7 +1161,7 @@ probe syscall.getrusage = kernel.function("sys_getrusage") { name = "getrusage" who = $who usage_uaddr = $ru - argstr = sprintf("%s, [%p]",_rusage_who_str($who), usage_uaddr) + argstr = sprintf("%s, %p",_rusage_who_str($who), usage_uaddr) } probe syscall.getrusage.return = kernel.function("sys_getrusage").return { name = "getrusage" @@ -1141,42 +1184,40 @@ probe syscall.getsid.return = kernel.function("sys_getsid").return { # 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" - } +probe syscall.getsockname = kernel.function("sys_getsockname") { + name = "getsockname" + s = $fd + name_uaddr = $usockaddr + namelen_uaddr = $usockaddr_len + argstr = sprintf("%d, %p, %p", $fd, $usockaddr, $usockaddr_len) +} +probe syscall.getsockname.return = kernel.function("sys_getsockname").return { + name = "getsockname" + retstr = returnstr(1) +} # 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" - } +# long sys_getsockopt(int fd, +# int level, +# int optname, +# char __user *optval, +# int __user *optlen) +# +probe 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 + argstr = sprintf("%d, %s, %s, %p, %p", $fd, _sockopt_level_str($level), + _sockopt_optname_str($optname), $optval, $optlen) +} +probe syscall.getsockopt.return = kernel.function("sys_getsockopt").return { + name = "getsockopt.return" +} # gettid _____________________________________________________ # long sys_gettid(void) @@ -1195,7 +1236,7 @@ probe syscall.gettimeofday = kernel.function("sys_gettimeofday") { name = "gettimeofday" tv_uaddr = $tv tz_uaddr = $tz - argstr = sprintf("[%p], [%p]", tv_uaddr, tz_uaddr) + argstr = sprintf("%p, %p", $tv, $tz) } probe syscall.gettimeofday.return = kernel.function("sys_gettimeofday").return { name = "gettimeofday" @@ -1232,7 +1273,7 @@ probe syscall.getxattr = kernel.function("sys_getxattr") { name2 = user_string($name) value_uaddr = $value size = $size - argstr = sprintf("%s, %s, [%p], %d", + argstr = sprintf("%s, %s, %p, %d", user_string_quoted($path), user_string_quoted($name), value_uaddr, size) @@ -1251,7 +1292,7 @@ probe syscall.init_module = kernel.function("sys_init_module") { umod_uaddr = $umod len = $len uargs = user_string($uargs) - argstr = sprintf("[%p], %d, %s", umod_uaddr, len, uargs) + argstr = sprintf("%p, %d, %s", umod_uaddr, len, uargs) } probe syscall.init_module.return = kernel.function("sys_init_module").return { name = "init_module" @@ -1267,7 +1308,7 @@ probe syscall.io_cancel = kernel.function("sys_io_cancel") { ctx_id = $ctx_id iocb_uaddr = $iocb result_uaddr = $result - argstr = sprintf("%d, [%p], [%p]", ctx_id, iocb_uaddr, result_uaddr) + argstr = sprintf("%d, %p, %p", ctx_id, iocb_uaddr, result_uaddr) } probe syscall.io_cancel.return = kernel.function("sys_io_cancel").return { name = "io_cancel" @@ -1282,7 +1323,7 @@ probe syscall.ioctl = kernel.function("sys_ioctl") { fd = $fd request = $cmd argp = $arg - argstr = sprintf("%d, %d, [%p]", fd, request, argp) + argstr = sprintf("%d, %d, %p", fd, request, argp) } probe syscall.ioctl.return = kernel.function("sys_ioctl").return { name = "ioctl" @@ -1316,7 +1357,7 @@ probe syscall.io_getevents = kernel.function("sys_io_getevents") { events_uaddr = $events timeout_uaddr = $timeout timestr = _struct_timespec_u($timeout) - argstr = sprintf("%d, %d, %d, [%p], [%p], %s", ctx_id, min_nr, + argstr = sprintf("%d, %d, %d, %p, %p, %s", ctx_id, min_nr, nr, events_uaddr, timeout_uaddr, timestr) } probe syscall.io_getevents.return = kernel.function("sys_io_getevents").return { @@ -1325,106 +1366,120 @@ probe syscall.io_getevents.return = kernel.function("sys_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" - } +# long sys_ioperm(unsigned long from, unsigned long num, int turn_on) +# +probe syscall.ioperm = kernel.function("sys_ioperm") ? { + name = "ioperm" + from = $from + num = $num + turn_on = $turn_on + argstr = sprintf("%d, %d, %d", $from, $num, $turn_on) +} +probe syscall.ioperm.return = kernel.function("sys_ioperm").return ? { + name = "ioperm" + retstr = returnstr(1) +} + # io_setup ___________________________________________________ -/* - * asmlinkage long - * sys_io_setup(unsigned nr_events, - * aio_context_t __user *ctxp) - */ -probe syscall.io_setup = - kernel.function("sys_io_setup") { +# long sys_io_setup(unsigned nr_events, aio_context_t __user *ctxp) +# +probe syscall.io_setup = kernel.function("sys_io_setup") { name = "io_setup" maxevents = $nr_events ctxp_uaddr = $ctxp argstr = sprintf("%d, %p", maxevents, ctxp_uaddr) } -probe syscall.io_setup.return = - kernel.function("sys_io_setup").return { +probe syscall.io_setup.return = kernel.function("sys_io_setup").return { name = "io_setup" retstr = returnstr(1) - } +} + # io_submit __________________________________________________ -/* - * asmlinkage long - * sys_io_submit(aio_context_t ctx_id, - * long nr, - * struct iocb __user * __user *iocbpp) - */ -probe syscall.io_submit = - kernel.function("sys_io_submit") { - name = "io_submit" - ctx_id = $ctx_id - nr = $nr - iocbpp_uaddr = $iocbpp - argstr = sprintf("%d, %d, %p", ctx_id, nr, iocbpp_uaddr) -} -probe syscall.io_submit.return = - kernel.function("sys_io_submit").return { - name = "io_submit" - retstr = returnstr(1) - } +# long sys_io_submit(aio_context_t ctx_id, +# long nr, +# struct iocb __user * __user *iocbpp) +# +probe syscall.io_submit = kernel.function("sys_io_submit") { + name = "io_submit" + ctx_id = $ctx_id + nr = $nr + iocbpp_uaddr = $iocbpp + argstr = sprintf("%d, %d, %p", ctx_id, nr, iocbpp_uaddr) +} +probe syscall.io_submit.return = kernel.function("sys_io_submit").return { + name = "io_submit" + retstr = returnstr(1) +} + +# ioprio_get _________________________________________________ +# long sys_ioprio_get(int which, int who) +# +probe syscall.ioprio_get = kernel.function("sys_ioprio_get") { + name = "ioprio_get" + which = $which + who = $who + argstr = sprintf("%d, %d", $which, $who) +} +probe syscall.ioprio_get.return = kernel.function("sys_ioprio_get").return { + name = "ioprio_get" + retstr = returnstr(1) +} + +# ioprio_set _________________________________________________ +# long sys_ioprio_set(int which, int who, int ioprio) +# +probe syscall.ioprio_set = kernel.function("sys_ioprio_set") { + name = "ioprio_set" + which = $which + who = $who + ioprio = $ioprio + argstr = sprintf("%d, %d, %d", $which, $who, $ioprio) +} +probe syscall.ioprio_set.return = kernel.function("sys_ioprio_set").return { + name = "ioprio_set" + retstr = returnstr(1) +} + # 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" - } -*/ +# long sys_kexec_load(unsigned long entry, +# unsigned long nr_segments, +# struct kexec_segment __user *segments, +# unsigned long flags) +# +probe syscall.kexec_load = kernel.function("sys_kexec_load") { + name = "kexec_load" + entry = $entry + nr_segments = $nr_segments + segments_uaddr = $segments_uaddr + flags = $flags + argstr = sprintf("%p, %d, %p, %d", $entry, $nr_segments, $segments, $flags) +} +probe syscall.kexec_load.return = kernel.function("sys_kexec_load").return { + name = "kexec_load" + retstr = returnstr(1) +} + # 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" - } +# long sys_keyctl(int option, +# unsigned long arg2, +# unsigned long arg3, +# unsigned long arg4, +# unsigned long arg5) +# +probe syscall.keyctl = kernel.function("sys_keyctl") { + name = "keyctl" + option = $option + arg2 = $arg2 + arg3 = $arg3 + arg4 = $arg4 + arg5 = $arg5 + argstr = sprintf("%d", $option) +} +probe syscall.keyctl.return = kernel.function("sys_keyctl").return { + name = "keyctl" + retstr = returnstr(1) +} # kill _______________________________________________________ # long sys_kill(int pid, int sig) @@ -1470,25 +1525,27 @@ probe syscall.lchown16.return = kernel.function("sys_lchown16").return ? { retstr = returnstr(1) } # 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" - } +# ssize_t sys_lgetxattr(char __user *path, +# char __user *name, +# void __user *value, +# size_t size) +# +probe syscall.lgetxattr = kernel.function("sys_lgetxattr") { + name = "lgetxattr" + path = user_string($path) + # FIXME + name2 = user_string($name) + value_uaddr = $value + size = $size + argstr = sprintf("%s, %s, %p, %d", + user_string_quoted($path), + user_string_quoted($name), + value_uaddr, size) +} +probe syscall.lgetxattr.return = kernel.function("sys_lgetxattr").return { + name = "lgetxattr" + retstr = returnstr(1) +} # link _______________________________________________________ # long sys_link(const char __user * oldname, # const char __user * newname) @@ -1519,41 +1576,37 @@ probe syscall.listen.return = kernel.function("sys_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" - } +# ssize_t sys_listxattr(char __user *path, char __user *list, size_t size) +# +probe syscall.listxattr = kernel.function("sys_listxattr") { + name = "listxattr" + path_uaddr = $path + path = user_string($path) + list_uaddr = $list + size = $size + argstr = sprintf("%s, %p, %d", user_string_quoted($path), $list, $size) +} +probe syscall.listxattr.return = kernel.function("sys_listxattr").return { + name = "listxattr" + retstr = returnstr(1) +} + # 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" - } +# ssize_t sys_llistxattr(char __user *path, char __user *list, size_t size) +# +probe syscall.llistxattr = kernel.function("sys_llistxattr") { + name = "llistxattr" + path_uaddr = $path + path = user_string($path) + list_uaddr = $list + size = $size + argstr = sprintf("%s, %p, %d", user_string_quoted($path), $list, $size) +} +probe syscall.llistxattr.return = kernel.function("sys_llistxattr").return { + name = "llistxattr" + retstr = returnstr(1) +} + # llseek _____________________________________________________ # long sys_llseek(unsigned int fd, # unsigned long offset_high, @@ -1575,40 +1628,38 @@ probe syscall.llseek.return = kernel.function("sys_llseek").return { name = "llseek" retstr = returnstr(1) } + # 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" - } +# long sys_lookup_dcookie(u64 cookie64, char __user * buf, size_t len) +# +probe syscall.lookup_dcookie = kernel.function("sys_lookup_dcookie") { + name = "lookup_dcookie" + cookie = $cookie64 + buffer_uaddr = $buf + len = $len + argstr = sprintf("%d, %p, %d", $cookie64, $buf, $len) +} +probe syscall.lookup_dcookie.return = kernel.function("sys_lookup_dcookie").return { + name = "lookup_dcookie" + retstr = returnstr(1) +} + # 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" - } +# long sys_lremovexattr(char __user *path, char __user *name) +# +probe syscall.lremovexattr = kernel.function("sys_lremovexattr") { + name = "lremovexattr" + path_uaddr = $path + path = user_string($path) + name_uaddr = $name + name2 = user_string($name) + argstr = sprintf("%s, %s", user_string_quoted($path), user_string_quoted($name)) +} +probe syscall.lremovexattr.return = kernel.function("sys_lremovexattr").return { + name = "lremovexattr" + retstr = returnstr(1) +} + # lseek ______________________________________________________ # off_t sys_lseek(unsigned int fd, off_t offset, unsigned int origin) probe syscall.lseek = kernel.function("sys_lseek") { @@ -1623,28 +1674,32 @@ probe syscall.lseek.return = kernel.function("sys_lseek").return { name = "lseek" retstr = returnstr(1) } + # 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" - } +# long sys_lsetxattr(char __user *path, +# char __user *name, +# void __user *value, +# size_t size, +# int flags) +# +probe syscall.lsetxattr = kernel.function("sys_lsetxattr") { + name = "lsetxattr" + path_uaddr = $path + path = user_string($path) + name_uaddr = $name + name_str = user_string($name) + value_uaddr = $value + size = $size + flags = $flags + argstr = sprintf("%s, %s, %p, %d, %d", + user_string_quoted($path), + user_string_quoted($name), + value_uaddr, $size, $flags) +} +probe syscall.lsetxattr.return = kernel.function("sys_lsetxattr").return { + name = "lsetxattr" + retstr = returnstr(1) +} # lstat ______________________________________________________ # long sys_lstat(char __user * filename, struct __old_kernel_stat __user * statbuf) @@ -1654,7 +1709,7 @@ probe syscall.lstat = name = "lstat" file_name = user_string($filename) buf_uaddr = $statbuf - argstr = sprintf("%s, [%p]", user_string_quoted($filename), buf_uaddr) + argstr = sprintf("%s, %p", user_string_quoted($filename), buf_uaddr) } probe syscall.lstat.return = kernel.function("sys_lstat").return ? @@ -1664,42 +1719,59 @@ probe syscall.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" - } +# long sys_madvise(unsigned long start, size_t len_in, int behavior) +# +probe syscall.madvise = kernel.function("sys_madvise") { + name = "madvise" + start = $start + length = $len_in + advice = $behavior + advice_str = _madvice_advice_str($behavior) + argstr = sprintf("%p, %d, %s", $start, $len_in, _madvice_advice_str($behavior)) +} +probe syscall.madvise.return = kernel.function("sys_madvise").return { + name = "madvise" + retstr = returnstr(1) +} + +# mbind ______________________________________________________ +# long sys_mbind(unsigned long start, +# unsigned long len, +# unsigned long mode, +# unsigned long __user *nmask, +# unsigned long maxnode, +# unsigned flags) +# +probe syscall.mbind = kernel.function("sys_mbind") ? { + name = "mbind" + start = $start + len = $len + mode = $mode + nmask_uaddr = $nmask + maxnode = $maxnode + flags = $flags + argstr = sprintf("%d, %d, %d, %p, %d, %d", $start, $len, $mode, + nmask_uaddr, $maxnode, $flags) +} +probe syscall.mbind.return = kernel.function("sys_mbind").return ? { + name = "mbind" + retstr = returnstr(1) +} + # 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" - } +# long sys_mincore(unsigned long start, size_t len, unsigned char __user * vec) +# +probe syscall.mincore = kernel.function("sys_mincore") { + name = "mincore" + start = $start + length = $len + vec_uaddr = $vec + argstr = sprintf("%p, %d, %p", $start, $len, $vec) +} +probe syscall.mincore.return = kernel.function("sys_mincore").return { + name = "mincore" + retstr = returnstr(1) +} # mkdir ______________________________________________________ # long sys_mkdir(const char __user * pathname, int mode) @@ -1823,23 +1895,20 @@ probe syscall.mmap2.return = kernel.function("sys_mmap2").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" - } +# int sys_modify_ldt(int func, void __user *ptr, unsigned long bytecount) +# +probe syscall.modify_ldt = kernel.function("sys_modify_ldt") { + name = "modify_ldt" + func = $func + ptr_uaddr = $ptr + bytecount = $bytecount + argstr = sprintf("%d, %p, %d", $func, $ptr, $bytecount) +} +probe syscall.modify_ldt.return = kernel.function("sys_modify_ldt").return { + name = "modify_ldt" + retstr = returnstr(1) +} + # mount ______________________________________________________ # long sys_mount(char __user * dev_name, # char __user * dir_name, @@ -1866,235 +1935,224 @@ probe syscall.mount.return = kernel.function("sys_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" - } +# long sys_mprotect(unsigned long start, size_t len, unsigned long prot) +# +probe syscall.mprotect = kernel.function("sys_mprotect") { + name = "mprotect" + addr = $start + len = $len + prot = $prot + prot_str = _mprotect_prot_str($prot) + argstr = sprintf("%p, %d, %s", $start, $len, _mprotect_prot_str($prot)) +} +probe syscall.mprotect.return = kernel.function("sys_mprotect").return { + name = "mprotect" + retstr = returnstr(1) +} + # 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" - } +# long sys_mq_getsetattr(mqd_t mqdes, +# const struct mq_attr __user *u_mqstat, +# struct mq_attr __user *u_omqstat) +# +probe syscall.mq_getsetattr = kernel.function("sys_mq_getsetattr") { + name = "mq_getsetattr" + mqdes = $mqdes + u_mqstat_uaddr = $u_mqstat + u_omqstat_uaddr = $u_omqstat + argstr = sprintf("%d, %p, %p", $mqdes, $u_mqstat, $u_omqstat) +} +probe syscall.mq_getsetattr.return = kernel.function("sys_mq_getsetattr").return { + name = "mq_getsetattr" + retstr = returnstr(1) +} + # 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" - } +# long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *u_notification) +# +probe syscall.mq_notify = kernel.function("sys_mq_notify") { + name = "mq_notify" + mqdes = $mqdes + notification_uaddr = $u_notification + argstr = sprintf("%d, %p", $mqdes, $u_notification) +} +probe syscall.mq_notify.return = kernel.function("sys_mq_notify").return { + name = "mq_notify" + retstr = returnstr(1) +} + # 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" - } +# long sys_mq_open(const char __user *u_name, +# int oflag, +# mode_t mode, +# struct mq_attr __user *u_attr) +# +probe syscall.mq_open = kernel.function("sys_mq_open") { + name = "mq_open" + name_uaddr = $u_name + filename = user_string($u_name) + mode = $mode + u_attr_uaddr = $u_attr + oflag = $oflag + if (oflag & 64) + argstr = sprintf("%s, %s, %#o, %p", user_string_quoted($u_name), + _sys_open_flag_str(oflag), $mode, $u_attr) + else + argstr = sprintf("%s, %s", user_string_quoted($u_name), _sys_open_flag_str(oflag)) +} +probe syscall.mq_open.return = kernel.function("sys_mq_open").return { + name = "mq_open" + retstr = returnstr(1) +} + # 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" - } +# 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 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 + argstr = sprintf("%d, %p, %d, %p, %p", $mqdes, $u_msg_ptr, $msg_len, + $u_msg_prio, $u_abs_timeout) +} +probe syscall.mq_timedreceive.return = kernel.function("sys_mq_timedreceive").return { + name = "mq_timedreceive" + retstr = returnstr(1) +} + # 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" - } +# 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 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 + argstr = sprintf("%d, %p, %d, %d, %p", $mqdes, $u_msg_ptr, $msg_len, + $msg_prio, $u_abs_timeout) +} +probe syscall.mq_timedsend.return = kernel.function("sys_mq_timedsend").return { + name = "mq_timedsend" + retstr = returnstr(1) +} + # 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" - } +# long sys_mq_unlink(const char __user *u_name) +# +probe syscall.mq_unlink = kernel.function("sys_mq_unlink") { + name = "mq_unlink" + u_name_uaddr = $u_name + u_name = user_string($u_name) + argstr = user_string_quoted($u_name) +} +probe syscall.mq_unlink.return = kernel.function("sys_mq_unlink").return { + name = "mq_unlink" + retstr = returnstr(1) +} + # 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" - } +# unsigned long sys_mremap(unsigned long addr, +# unsigned long old_len, +# unsigned long new_len, +# unsigned long flags, +# unsigned long new_addr) +# +probe 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 + argstr = sprintf("%p, %d, %d, %s, %p", $addr, $old_len, $new_len, + _mmap_flags($flags), $new_addr) +} +probe syscall.mremap.return = kernel.function("sys_mremap").return { + name = "mremap" + retstr = returnstr(2) +} + # 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" - } +# long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf) +# +probe syscall.msgctl = kernel.function("sys_msgctl") { + name = "msgctl" + msqid = $msqid + cmd = $cmd + buf_uaddr = $buf + argstr = sprintf("%d, %d, %p", $msqid, $cmd, $buf) +} +probe syscall.msgctl.return = kernel.function("sys_msgctl").return { + name = "msgctl" + retstr = returnstr(1) +} + # 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" - } +# long sys_msgget (key_t key, int msgflg) +# +probe syscall.msgget = kernel.function("sys_msgget") { + name = "msgget" + key = $key + msgflg = $msgflg + msgflg_str = _sys_open_flag_str($msgflg) + argstr = sprintf("%d, %s", $key, _sys_open_flag_str($msgflg)) +} +probe syscall.msgget.return = kernel.function("sys_msgget").return { + name = "msgget" + retstr = returnstr(1) +} + # 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" - } +# long sys_msgrcv (int msqid, +# struct msgbuf __user *msgp, +# size_t msgsz, +# long msgtyp, +# int msgflg) +# +probe syscall.msgrcv = kernel.function("sys_msgrcv") { + name = "msgrcv" + msqid = $msqid + msgp_uaddr = $msgp + msgsz = $msgsz + msgtyp = $msgtyp + msgflg = $msgflg + argstr = sprintf("%d, %p, %d, %d, %d", $msqid, $msgp, $msgsz, $msgtyp, $msgflg) +} +probe syscall.msgrcv.return = kernel.function("sys_msgrcv").return { + name = "msgrcv" + retstr = returnstr(1) +} + # 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" - } +# long sys_msgsnd (int msqid, +# struct msgbuf __user *msgp, +# size_t msgsz, +# int msgflg) +# +probe syscall.msgsnd = kernel.function("sys_msgsnd") { + name = "msgsnd" + msqid = $msqid + msgp_uaddr = $msgp + msgsz = $msgsz + msgflg = $msgflg + argstr = sprintf("%d, %p, %d, %d", $msqid, $msgp, $msgsz, $msgflg) +} +probe syscall.msgsnd.return = kernel.function("sys_msgsnd").return { + name = "msgsnd" + retstr = returnstr(1)} # msync ______________________________________________________ # long sys_msync(unsigned long start, size_t len, int flags) diff --git a/tapset/syscalls2.stp b/tapset/syscalls2.stp index 1e39c7e0..d0d0e85f 100644 --- a/tapset/syscalls2.stp +++ b/tapset/syscalls2.stp @@ -45,7 +45,7 @@ probe syscall.newlstat = kernel.function("sys_newlstat") ?, name = "newlstat" pathname = user_string($filename) buf_uaddr = $statbuf - argstr = sprintf("%s, [%p]", + argstr = sprintf("%s, %p", user_string_quoted($filename), buf_uaddr) } probe syscall.newlstat.return = kernel.function("sys_newlstat").return ?, @@ -62,7 +62,7 @@ probe syscall.newstat = kernel.function("sys_newstat") { name = "stat" pathname = user_string($filename) buf_uaddr = $statbuf - argstr = sprintf("%s, [%p]", user_string_quoted($filename), buf_uaddr) + argstr = sprintf("%s, %p", user_string_quoted($filename), buf_uaddr) } probe syscall.newstat.return = kernel.function("sys_newstat").return { name = "stat" @@ -75,7 +75,7 @@ probe syscall.newstat.return = kernel.function("sys_newstat").return { probe syscall.newuname = kernel.function("sys_newuname") { name = "uname" name_uaddr = $name - argstr = sprintf("[%p]", name_uaddr) + argstr = sprintf("%p", name_uaddr) } probe syscall.newuname.return = kernel.function("sys_newuname").return { name = "uname" @@ -93,7 +93,7 @@ probe syscall.nfsservctl = kernel.function("sys_nfsservctl") { cmd = $cmd argp_uaddr = $arg resp_uaddr = $res - argstr = sprintf("%p, [%p], [%p]", cmd, argp_uaddr, resp_uaddr) + argstr = sprintf("%p, %p, %p", cmd, argp_uaddr, resp_uaddr) } probe syscall.nfsservctl.return = kernel.function("sys_nfsservctl").return { name = "nfsservctl" @@ -138,7 +138,7 @@ probe syscall.old_getrlimit = kernel.function("sys_old_getrlimit") { resource = $resource resource_str = _rlimit_resource_str($resource) rlim_uaddr = $rlim - argstr = sprintf("%s, [%p]", resource_str, rlim_uaddr) + argstr = sprintf("%s, %p", resource_str, rlim_uaddr) } probe syscall.old_getrlimit.return = kernel.function("sys_old_getrlimit").return { name = "old_getrlimit" @@ -146,7 +146,7 @@ probe syscall.old_getrlimit.return = kernel.function("sys_old_getrlimit").return } # open _______________________________________________________ -# asmlinkage long sys_open(const char __user * filename, int flags, int mode) +# long sys_open(const char __user * filename, int flags, int mode) probe syscall.open = kernel.function("sys_open") ?, kernel.function("sys32_open") ? @@ -157,10 +157,10 @@ probe syscall.open = mode = $mode if (flags & 64) argstr = sprintf("%s, %s, %#o", user_string_quoted($filename), - _sys_open_flag_str($flags), $mode) + _sys_open_flag_str(flags), $mode) else argstr = sprintf("%s, %s", user_string_quoted($filename), - _sys_open_flag_str($flags)) + _sys_open_flag_str(flags)) } probe syscall.open.return = kernel.function("sys_open").return ?, @@ -219,7 +219,7 @@ probe syscall.pause.return = kernel.function("sys_pause").return { # off = $off # len = $len # buf_uaddr = $buf -# argstr = sprintf("%p, %p, %p, %d, [%p]", bus, dfn, off, +# argstr = sprintf("%p, %p, %p, %d, %p", bus, dfn, off, # len, buf_uaddr) #} #probe syscall.pciconfig_read.return = @@ -244,7 +244,7 @@ probe syscall.pause.return = kernel.function("sys_pause").return { # off = $off # len = $len # buf_uaddr = $buf -# argstr = sprintf("%p, %p, %p, %d, [%p]", bus, dfn, off, +# argstr = sprintf("%p, %p, %p, %d, %p", bus, dfn, off, # len, buf_uaddr) #} #probe syscall.pciconfig_write.return = @@ -313,7 +313,7 @@ probe syscall.poll = kernel.function("sys_poll") { %: timeout = $timeout %) - argstr = sprintf("[%p], %d, %d", ufds_uaddr, nfds, timeout) + argstr = sprintf("%p, %d, %d", ufds_uaddr, nfds, timeout) } probe syscall.poll.return = kernel.function("sys_poll").return { name = "poll" @@ -356,7 +356,7 @@ probe syscall.pread64 = kernel.function("sys_pread64") { buf_uaddr = $buf count = $count offset = $pos - argstr = sprintf("%d, [%p], %p, %p", fd, buf_uaddr, + argstr = sprintf("%d, %p, %p, %p", fd, buf_uaddr, count, offset) } probe syscall.pread64.return = kernel.function("sys_pread64").return { @@ -398,7 +398,7 @@ probe syscall.pwrite64 = kernel.function("sys_pwrite64") { buf_uaddr = $buf count = $count offset = $pos - argstr = sprintf("%d, [%p], %p, %p", fd, buf_uaddr, + argstr = sprintf("%d, %p, %p, %p", fd, buf_uaddr, count, offset) } probe syscall.pwrite64.return = kernel.function("sys_pwrite64").return { @@ -413,7 +413,7 @@ probe syscall.read = kernel.function("sys_read") { fd = $fd buf_uaddr = $buf count = $count - argstr = sprintf("%d, [%p], %d", $fd, $buf, $count) + argstr = sprintf("%d, %p, %d", $fd, $buf, $count) } probe syscall.read.return = kernel.function("sys_read").return { name = "read" @@ -449,7 +449,7 @@ probe syscall.readlink = kernel.function("sys_readlink") { path = user_string($path) buf_uaddr = $buf bufsiz = $bufsiz - argstr = sprintf("%s, [%p], %d", user_string_quoted($path), + argstr = sprintf("%s, %p, %d", user_string_quoted($path), buf_uaddr, bufsiz) } probe syscall.readlink.return = kernel.function("sys_readlink").return { @@ -470,9 +470,9 @@ probe syscall.readv = kernel.function("sys_readv") { /* FIXME: RHEL4 U3 ppc64 can't resolve $fd */ %( arch != "ppc64" %? fd = $fd - argstr = sprintf("%d, [%p], %d", $fd, $vec, $vlen) + argstr = sprintf("%d, %p, %d", $fd, $vec, $vlen) %: - argstr = sprintf("unknown fd, [%p], %d", $vec, $vlen) + argstr = sprintf("unknown fd, %p, %d", $vec, $vlen) %) } probe syscall.readv.return = kernel.function("sys_readv").return { @@ -496,7 +496,7 @@ probe syscall.reboot = kernel.function("sys_reboot") { flag = $cmd flag_str = _reboot_flag_str(flag) arg_uaddr = $arg - argstr = sprintf("%s, %s, %s, [%p]", magic_str, magic2_str, + argstr = sprintf("%s, %s, %s, %p", magic_str, magic2_str, flag_str, arg_uaddr) } probe syscall.reboot.return = kernel.function("sys_reboot").return { @@ -522,7 +522,7 @@ probe syscall.recv = kernel.function("sys_recvfrom") { flags_str = _recvflags_str($flags) addr_uaddr = $addr addrlen_uaddr = $addr_len - argstr = sprintf("%d, [%p], %p, %s, [%p], %p", + argstr = sprintf("%d, %p, %p, %s, %p, %p", s, buf_uaddr, len, flags_str, addr_uaddr, addrlen_uaddr) } @@ -549,7 +549,7 @@ probe syscall.recvfrom = kernel.function("sys_recvfrom") { flags_str = _recvflags_str($flags) addr_uaddr = $addr addrlen_uaddr = $addr_len - argstr = sprintf("%d, [%p], %p, %s, %p, %p", + argstr = sprintf("%d, %p, %p, %s, %p, %p", s, buf_uaddr, len, flags_str, addr_uaddr, addrlen_uaddr) } @@ -570,7 +570,7 @@ probe syscall.recvmsg = kernel.function("sys_recvmsg") { msg_uaddr = $msg flags = $flags flags_str = _recvflags_str($flags) - argstr = sprintf("%d, [%p], %s", s, msg_uaddr, flags_str) + argstr = sprintf("%d, %p, %s", s, msg_uaddr, flags_str) } probe syscall.recvmsg.return = kernel.function("sys_recvmsg").return { name = "recvmsg" @@ -664,8 +664,7 @@ probe syscall.rmdir.return = kernel.function("sys_rmdir").return { } # rt_sigaction _______________________________________________ # -# asmlinkage long -# sys_rt_sigaction(int sig, +# long sys_rt_sigaction(int sig, # const struct sigaction __user *act, # struct sigaction __user *oact, # size_t sigsetsize) @@ -677,8 +676,9 @@ probe syscall.rt_sigaction = kernel.function("sys_rt_sigaction") { oact_uaddr = $oact sigsetsize = $sigsetsize - argstr = sprintf("%s, [%p], [%p], %p", _signal_name($sig), - act_uaddr, oact_uaddr, sigsetsize) + //FIXME - decode $act + argstr = sprintf("%s, %p, %p, %d", _signal_name($sig), + $act, $oact, $sigsetsize) } probe syscall.rt_sigaction.return = kernel.function("sys_rt_sigaction").return { name = "rt_sigaction" @@ -694,7 +694,7 @@ probe syscall.rt_sigpending = kernel.function("do_sigpending") { name = "rt_sigpending" set_uaddr = $set sigsetsize = $sigsetsize - argstr = sprintf("[%p], %p", set_uaddr, sigsetsize) + argstr = sprintf("%p, %d", $set, $sigsetsize) } probe syscall.rt_sigpending.return = kernel.function("do_sigpending").return { name = "rt_sigpending" @@ -702,8 +702,7 @@ probe syscall.rt_sigpending.return = kernel.function("do_sigpending").return { } # rt_sigprocmask _____________________________________________ # -# asmlinkage long -# sys_rt_sigprocmask(int how, +# long sys_rt_sigprocmask(int how, # sigset_t __user *set, # sigset_t __user *oset, # size_t sigsetsize) @@ -713,16 +712,17 @@ probe syscall.rt_sigprocmask = kernel.function("sys_rt_sigprocmask") { how = $how how_str = _sigprocmask_how_str($how) set_uaddr = $set + # FIXME - need to decode $set oset_uaddr = $oset sigsetsize = $sigsetsize - argstr = sprintf("%s, [%p], [%p], %p", how_str, set_uaddr, - oset_uaddr, sigsetsize) + argstr = sprintf("%s, %p, %p, %d", how_str, $set, $oset, $sigsetsize) } probe syscall.rt_sigprocmask.return = kernel.function("sys_rt_sigprocmask").return { name = "rt_sigprocmask" retstr = returnstr(1) } + # rt_sigqueueinfo ____________________________________________ # # asmlinkage long @@ -735,13 +735,26 @@ probe syscall.rt_sigqueueinfo = kernel.function("sys_rt_sigqueueinfo") { pid = $pid sig = $sig uinfo_uaddr = $uinfo - argstr = sprintf("%p, %s, [%p]", pid, _signal_name($sig), uinfo_uaddr) + argstr = sprintf("%p, %s, %p", $pid, _signal_name($sig), $uinfo) } probe syscall.rt_sigqueueinfo.return = kernel.function("sys_rt_sigqueueinfo").return { name = "rt_sigqueueinfo" retstr = returnstr(1) } + +# rt_sigreturn _______________________________________________ +# int sys_rt_sigreturn(unsigned long __unused) +# +probe syscall.rt_sigreturn = kernel.function("sys_rt_sigreturn") { + name = "rt_sigreturn" + argstr = "" +} +probe syscall.rt_sigreturn.return = kernel.function("sys_rt_sigreturn").return { + name = "rt_sigreturn" + retstr = returnstr(1) +} + # rt_sigsuspend ______________________________________________ # # asmlinkage int @@ -771,8 +784,7 @@ probe syscall.rt_sigtimedwait = kernel.function("sys_rt_sigtimedwait") { uinfo_uaddr = $uinfo uts_uaddr = $uts sigsetsize = $sigsetsize - argstr = sprintf("[%p], [%p], [%p], %p", uthese_uaddr, - uinfo_uaddr, uts_uaddr, sigsetsize) + argstr = sprintf("%p, %p, %p, %d", $uthese, $uinfo, $uts, $sigsetsize) } probe syscall.rt_sigtimedwait.return = kernel.function("sys_rt_sigtimedwait").return { @@ -791,7 +803,7 @@ probe syscall.sched_getaffinity = kernel.function("sys_sched_getaffinity") { pid = $pid len = $len mask_uaddr = $user_mask_ptr - argstr = sprintf("%d, %p, [%p]", pid, len, mask_uaddr) + argstr = sprintf("%d, %p, %p", pid, len, mask_uaddr) } probe syscall.sched_getaffinity.return = kernel.function("sys_sched_getaffinity").return { @@ -808,7 +820,7 @@ probe syscall.sched_getparam = kernel.function("sys_sched_getparam") { name = "sched_getparam" pid = $pid p_uaddr = $param - argstr = sprintf("%d, [%p]", pid, p_uaddr) + argstr = sprintf("%d, %p", pid, p_uaddr) } probe syscall.sched_getparam.return = kernel.function("sys_sched_getparam").return { @@ -880,10 +892,26 @@ probe syscall.sched_rr_get_interval.return = name = "sched_rr_get_interval" retstr = returnstr(1) } -# sched_yield ________________________________________________ + +# sched_setaffinity __________________________________________ +# long sys_sched_setaffinity(pid_t pid, +# unsigned int len, +# unsigned long __user *user_mask_ptr) # -# asmlinkage long -# sys_sched_yield(void) +probe syscall.sched_setaffinity = kernel.function("sys_sched_setaffinity") { + name = "sched_setaffinity" + pid = $pid + len = $len + mask_uaddr = $user_mask_ptr + argstr = sprintf("%d, %d, %p", $pid, $len, $user_mask_ptr) +} +probe syscall.sched_setaffinity.return = kernel.function("sys_sched_setaffinity").return { + name = "sched_setaffinity" + retstr = returnstr(1) +} + +# sched_yield ________________________________________________ +# long sys_sched_yield(void) # probe syscall.sched_yield = kernel.function("sys_sched_yield") { name = "sched_yield" @@ -893,10 +921,9 @@ probe syscall.sched_yield.return = kernel.function("sys_sched_yield").return { name = "sched_yield" retstr = returnstr(1) } + # select _____________________________________________________ -# -# asmlinkage long -# sys_select(int n, +# long sys_select(int n, # fd_set __user *inp, # fd_set __user *outp, # fd_set __user *exp, @@ -918,10 +945,9 @@ probe syscall.select.return = kernel.function("sys_select").return { name = "select" retstr = returnstr(1) } + # semctl _____________________________________________________ -# -# asmlinkage long -# sys_semctl (int semid, +# long sys_semctl (int semid, # int semnum, # int cmd, # union semun arg) @@ -941,12 +967,9 @@ probe syscall.semctl.return = kernel.function("sys_semctl").return { name = "semctl" retstr = returnstr(1) } + # semget _____________________________________________________ -# -# asmlinkage long -# sys_semget (key_t key, -# int nsems, -# int semflg) +# long sys_semget (key_t key, int nsems, int semflg) # probe syscall.semget = kernel.function("sys_semget") { name = "semget" @@ -959,6 +982,7 @@ probe syscall.semget.return = kernel.function("sys_semget").return { name = "semget" retstr = returnstr(1) } + # semop ______________________________________________________ # # asmlinkage long @@ -971,7 +995,7 @@ probe syscall.semop = kernel.function("sys_semtimedop") { semid = $semid tsops_uaddr = $tsops nsops = $nsops - argstr = sprintf("%d, [%p], %d", semid, tsops_uaddr, nsops) + argstr = sprintf("%d, %p, %d", semid, tsops_uaddr, nsops) } probe syscall.semop.return = kernel.function("sys_semtimedop").return { name = "semop" @@ -991,7 +1015,7 @@ probe syscall.semtimedop = kernel.function("sys_semtimedop") { sops_uaddr = $tsops nsops = $nsops timeout_uaddr = $timeout - argstr = sprintf("%d, [%p], %d, %s", semid, sops_uaddr, nsops, + argstr = sprintf("%d, %p, %d, %s", semid, sops_uaddr, nsops, _struct_timespec_u(timeout_uaddr)) } probe syscall.semtimedop.return = kernel.function("sys_semtimedop").return { @@ -1017,7 +1041,7 @@ probe syscall.send = kernel.function("sys_sendto") { flags_str = _send_flags_str($flags) to_uaddr = $addr tolen = $addr_len - argstr = sprintf("%d, [%p], %s, [%p], %d", $fd, buf_uaddr, + argstr = sprintf("%d, %p, %s, %p, %d", $fd, buf_uaddr, flags_str, to_uaddr, $addr_len) } probe syscall.send.return = kernel.function("sys_sendto").return { @@ -1037,7 +1061,7 @@ probe syscall.sendfile = kernel.function("sys_sendfile") ?, kernel.function("sys in_fd = $in_fd offset_uaddr = $offset count = $count - argstr = sprintf("%d, %d, [%p], %d", $out_fd, $in_fd, offset_uaddr, + argstr = sprintf("%d, %d, %p, %d", $out_fd, $in_fd, offset_uaddr, $count) } probe syscall.sendfile.return = kernel.function("sys_sendfile").return ?, kernel.function("sys_sendfile64").return ? { @@ -1058,7 +1082,7 @@ probe syscall.sendmsg = kernel.function("sys_sendmsg") { msg_uaddr = $msg flags = $flags flags_str = _send_flags_str($flags) - argstr = sprintf("%d, [%p], %s", $fd, msg_uaddr, flags_str) + argstr = sprintf("%d, %p, %s", $fd, msg_uaddr, flags_str) } probe syscall.sendmsg.return = kernel.function("sys_sendmsg").return { name = "sendmsg" @@ -1083,7 +1107,7 @@ probe syscall.sendto = kernel.function("sys_sendto") { flags_str = _send_flags_str($flags) to_uaddr = $addr tolen = $addr_len - argstr = sprintf("%d, [%p], %d, %s, [%p], %d", $fd, buf_uaddr, + argstr = sprintf("%d, %p, %d, %s, %p, %d", $fd, buf_uaddr, $len, flags_str, to_uaddr, $addr_len) } probe syscall.sendto.return = kernel.function("sys_sendto").return { @@ -1197,7 +1221,7 @@ probe syscall.setgroups = kernel.function("sys_setgroups") { * embedded C if need be. */ list_uaddr = $grouplist - argstr = sprintf("%d, [%p]", $gidsetsize, list_uaddr) + argstr = sprintf("%d, %p", $gidsetsize, list_uaddr) } probe syscall.setgroups.return = kernel.function("sys_setgroups").return { name = "setgroups" @@ -1240,6 +1264,24 @@ probe syscall.setitimer.return = kernel.function("sys_setitimer").return { name = "setitimer" retstr = returnstr(1) } + +# set_mempolicy ______________________________________________ +# long sys_set_mempolicy(int mode, +# unsigned long __user *nmask, +# unsigned long maxnode) +# +probe syscall.set_mempolicy = kernel.function("sys_set_mempolicy") ? { + name = "set_mempolicy" + mode = $mode + nmask_uaddr = $nmask + maxnode = $maxnode + argstr = sprintf("%d, %p, %d", $mode, nmask_uaddr, $maxnode) +} +probe syscall.set_mempolicy.return = kernel.function("sys_set_mempolicy").return ? { + name = "set_mempolicy" + retstr = returnstr(1) +} + # setpgid ____________________________________________________ # # asmlinkage long @@ -1441,7 +1483,7 @@ probe syscall.setsockopt = kernel.function("sys_setsockopt") { optname_str = _sockopt_optname_str($optname) optval_uaddr = $optval optlen = $optlen - argstr = sprintf("%d, %s, %s, [%p], %d", $fd, level_str, + argstr = sprintf("%d, %s, %s, %p, %d", $fd, level_str, optname_str, optval_uaddr, $optlen) } probe syscall.setsockopt.return = kernel.function("sys_setsockopt").return { @@ -1456,7 +1498,7 @@ probe syscall.setsockopt.return = kernel.function("sys_setsockopt").return { probe syscall.set_tid_address = kernel.function("sys_set_tid_address") { name = "set_tid_address" tidptr_uaddr = $tidptr - argstr = sprintf("[%p]", tidptr_uaddr) + argstr = sprintf("%p", tidptr_uaddr) } probe syscall.set_tid_address.return = kernel.function("sys_set_tid_address").return { @@ -1465,21 +1507,13 @@ probe syscall.set_tid_address.return = } # settimeofday _______________________________________________ # -# asmlinkage long -# sys_settimeofday(struct timeval __user *tv, +# long sys_settimeofday(struct timeval __user *tv, # struct timezone __user *tz) # probe syscall.settimeofday = kernel.function("sys_settimeofday") { name = "settimeofday" 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) - */ argstr = sprintf("%s, %s", _struct_timeval_u($tv), _struct_timezone_u($tz)) } @@ -1488,6 +1522,7 @@ probe syscall.settimeofday.return = name = "settimeofday" retstr = returnstr(1) } + # setuid _____________________________________________________ # # asmlinkage long @@ -1517,9 +1552,7 @@ probe syscall.setuid16.return = kernel.function("sys_setuid16").return ? { retstr = returnstr(1) } # setxattr ___________________________________________________ -# -# asmlinkage long -# sys_setxattr(char __user *path, +# long sys_setxattr(char __user *path, # char __user *name, # void __user *value, # size_t size, @@ -1534,7 +1567,7 @@ probe syscall.setxattr = kernel.function("sys_setxattr") { value_uaddr = $value size = $size flags = $flags - argstr = sprintf("%s, %s, [%p], %d, %d", + argstr = sprintf("%s, %s, %p, %d, %d", user_string_quoted($path), user_string_quoted($name), value_uaddr, $size, $flags) @@ -1567,7 +1600,7 @@ probe syscall.shmctl = kernel.function("sys_shmctl") { shmid = $shmid cmd = $cmd buf_uaddr = $buf - argstr = sprintf("%d, %s, [%p]", $shmid, _semctl_cmd($cmd), + argstr = sprintf("%d, %s, %p", $shmid, _semctl_cmd($cmd), buf_uaddr) } probe syscall.shmctl.return = kernel.function("sys_shmctl").return { @@ -1582,7 +1615,7 @@ probe syscall.shmctl.return = kernel.function("sys_shmctl").return { probe syscall.shmdt = kernel.function("sys_shmdt") { name = "shmdt" shmaddr_uaddr = $shmaddr - argstr = sprintf("[%p]", shmaddr_uaddr) + argstr = sprintf("%p", shmaddr_uaddr) } probe syscall.shmdt.return = kernel.function("sys_shmdt").return { name = "shmdt" @@ -1624,30 +1657,26 @@ probe syscall.shutdown.return = kernel.function("sys_shutdown").return { retstr = returnstr(1) } # signal _____________________________________________________ -# -# asmlinkage unsigned long -# sys_signal(int sig, -# __sighandler_t handler) +# unsigned long sys_signal(int sig, __sighandler_t handler) # probe syscall.signal = kernel.function("sys_signal") { name = "signal" sig = $sig handler = $handler - argstr = sprintf("%s, [%p]", _signal_name($sig), $handler) + argstr = sprintf("%s, %p", _signal_name($sig), $handler) } probe syscall.signal.return = kernel.function("sys_signal").return { name = "signal" retstr = returnstr(1) } + # sigpending _________________________________________________ -# -# long do_sigpending(void __user *set, -# unsigned long sigsetsize) +# long do_sigpending(void __user *set, unsigned long sigsetsize) # probe syscall.sigpending = kernel.function("do_sigpending") { name = "sigpending" - /* - * NOTE + /* + * FIXME * set is defined as * struct { * unsigned long int __val[128]; @@ -1659,16 +1688,15 @@ probe syscall.sigpending = kernel.function("do_sigpending") { */ set_uaddr = $set sigsetsize = $sigsetsize - argstr = sprintf("[%p], %d", set_uaddr, $sigsetsize) + argstr = sprintf("%p, %d", $set, $sigsetsize) } probe syscall.sigpending.return = kernel.function("do_sigpending").return { name = "sigpending" retstr = returnstr(1) } + # sigprocmask ________________________________________________ -# -# asmlinkage long -# sys_sigprocmask(int how, +# long sys_sigprocmask(int how, # old_sigset_t __user *set, # old_sigset_t __user *oset) # @@ -1677,7 +1705,7 @@ probe syscall.sigprocmask = kernel.function("sys_sigprocmask") { how = $how how_str = _sigprocmask_how_str($how) /* - * NOTE + * FIXME * set and oset are defined as * struct { * unsigned long int __val[128]; @@ -1689,19 +1717,15 @@ probe syscall.sigprocmask = kernel.function("sys_sigprocmask") { */ set_uaddr = $set oldset_uaddr = $oset - argstr = sprintf("%s, [%p], [%p]", how_str, set_uaddr, - oldset_uaddr) + argstr = sprintf("%s, %p, %p", how_str, $set, $oset) } probe syscall.sigprocmask.return = kernel.function("sys_sigprocmask").return { name = "sigprocmask" retstr = returnstr(1) } + # socket _____________________________________________________ -# -# asmlinkage long -# sys_socket(int family, -# int type, -# int protocol) +# long sys_socket(int family, int type, int protocol) # probe syscall.socket = kernel.function("sys_socket") { name = "socket" @@ -1728,16 +1752,15 @@ probe syscall.socket.return = kernel.function("sys_socket").return { # name = "socketcall" # call = $call # args_uaddr = $args -# argstr = sprintf("%d, [%p]", $call, args_uaddr) +# argstr = sprintf("%d, %p", $call, args_uaddr) #} #probe syscall.socketcall.return = kernel.function("sys_socketcall").return { # name = "socketcall" # retstr = returnstr(1) #} + # socketpair _________________________________________________ -# -# asmlinkage long -# sys_socketpair(int family, +# long sys_socketpair(int family, # int type, # int protocol, # int __user *usockvec) @@ -1748,7 +1771,7 @@ probe syscall.socketpair = kernel.function("sys_socketpair") { type = $type protocol = $protocol sv_uaddr = $usockvec - argstr = sprintf("%s, %s, %d, [%p]", + argstr = sprintf("%s, %s, %d, %p", _sock_family_str($family), _sock_type_str($type), $protocol, sv_uaddr) @@ -1783,7 +1806,7 @@ probe syscall.stat = filename_uaddr = $filename filename = user_string($filename) buf_uaddr = $statbuf - argstr = sprintf("%s, [%p]", user_string_quoted($filename), buf_uaddr) + argstr = sprintf("%s, %p", user_string_quoted($filename), buf_uaddr) } probe syscall.stat.return = kernel.function("sys_stat").return ?, @@ -1800,7 +1823,7 @@ probe syscall.statfs = kernel.function("sys_statfs") { name = "statfs" path = user_string($path) buf_uaddr = $buf - argstr = sprintf("%s, [%p]", user_string_quoted($path), $buf) + argstr = sprintf("%s, %p", user_string_quoted($path), $buf) } probe syscall.statfs.return = kernel.function("sys_statfs").return { name = "statfs" @@ -1818,7 +1841,7 @@ probe syscall.statfs64 = kernel.function("sys_statfs64") { path = user_string($path) sz = $sz buf_uaddr = $buf - argstr = sprintf("%s, %d, [%p]", user_string_quoted($path), $sz, $buf) + argstr = sprintf("%s, %d, %p", user_string_quoted($path), $sz, $buf) } probe syscall.statfs64.return = kernel.function("sys_statfs64").return { name = "statfs64" @@ -1834,7 +1857,7 @@ probe syscall.stime = kernel.function("sys_stime") { t_uaddr = $tptr /* Fixme, should just use get_user? */ - argstr = sprintf("[%p]", t_uaddr) + argstr = sprintf("%p", t_uaddr) } probe syscall.stime.return = kernel.function("sys_stime").return { name = "stime" @@ -1905,7 +1928,7 @@ probe syscall.sync.return = kernel.function("sys_sync").return { probe syscall.sysctl = kernel.function("sys_sysctl") { name = "sysctl" args_uaddr = $args - argstr = sprintf("[%p]", args_uaddr) + argstr = sprintf("%p", args_uaddr) } probe syscall.sysctl.return = kernel.function("sys_sysctl").return { name = "sysctl" @@ -1937,7 +1960,7 @@ probe syscall.sysfs.return = kernel.function("sys_sysfs").return { probe syscall.sysinfo = kernel.function("sys_sysinfo") { name = "sysinfo" info_uaddr = $info - argstr = sprintf("[%p]", info_uaddr) + argstr = sprintf("%p", info_uaddr) } probe syscall.sysinfo.return = kernel.function("sys_sysinfo").return { name = "sysinfo" @@ -1955,7 +1978,7 @@ probe syscall.syslog = kernel.function("do_syslog") { type = $type bufp_uaddr = $buf len = $len - argstr = sprintf("%d, [%p], %d", $type, bufp_uaddr, $len) + argstr = sprintf("%d, %p, %d", $type, bufp_uaddr, $len) } probe syscall.syslog.return = kernel.function("do_syslog").return { name = "syslog" @@ -1981,23 +2004,21 @@ probe syscall.tgkill.return = kernel.function("sys_tgkill").return { } # time _______________________________________________________ # -# asmlinkage long -# sys_time(time_t __user * tloc) +# long sys_time(time_t __user * tloc) # probe syscall.time = kernel.function("sys_time") { name = "time" t_uaddr = $tloc - /* FIXME */ - argstr = sprintf("[%p]", t_uaddr) + argstr = sprintf("%p", $tloc) } probe syscall.time.return = kernel.function("sys_time").return { name = "time" retstr = returnstr(1) } + # timer_create _______________________________________________ # -# asmlinkage long -# sys_timer_create(clockid_t which_clock, +# long sys_timer_create(clockid_t which_clock, # struct sigevent __user *timer_event_spec, # timer_t __user * created_timer_id) # @@ -2007,22 +2028,17 @@ probe syscall.timer_create = kernel.function("sys_timer_create") { clockid_str = _get_wc_str($which_clock) evp_uaddr = $timer_event_spec timerid_uaddr = $created_timer_id - /* - * XXX NOT SAFE -- might sleep - * timerid = __uget_num($created_timer_id) - */ - argstr = sprintf("%d, [%p], [%p]", $which_clock, evp_uaddr, - timerid_uaddr) + argstr = sprintf("%s, %p, %p", clockid_str, $timer_event_spec, $created_timer_id) } probe syscall.timer_create.return = kernel.function("sys_timer_create").return { name = "timer_create" retstr = returnstr(1) } + # timer_delete _______________________________________________ # -# asmlinkage long -# sys_timer_delete(timer_t timer_id) +# long sys_timer_delete(timer_t timer_id) # probe syscall.timer_delete = kernel.function("sys_timer_delete") { name = "timer_delete" @@ -2033,10 +2049,10 @@ probe syscall.timer_delete.return = kernel.function("sys_timer_delete").return { name = "timer_delete" retstr = returnstr(1) } + # timer_getoverrun ___________________________________________ # -# asmlinkage long -# sys_timer_getoverrun(timer_t timer_id) +# long sys_timer_getoverrun(timer_t timer_id) # probe syscall.timer_getoverrun = kernel.function("sys_timer_getoverrun") { name = "timer_getoverrun" @@ -2048,28 +2064,27 @@ probe syscall.timer_getoverrun.return = name = "timer_getoverrun" retstr = returnstr(1) } + # timer_gettime ______________________________________________ # -# asmlinkage long -# sys_timer_gettime(timer_t timer_id, +# long sys_timer_gettime(timer_t timer_id, # struct itimerspec __user *setting) # probe syscall.timer_gettime = kernel.function("sys_timer_gettime") { name = "timer_gettime" timerid = $timer_id value_uaddr = $setting - argstr = sprintf("%d, %s", $timer_id, - _struct_timespec_u($setting)) + argstr = sprintf("%d, %p", $timer_id, $setting) } probe syscall.timer_gettime.return = kernel.function("sys_timer_gettime").return { name = "timer_gettime" retstr = returnstr(1) } + # timer_settime ______________________________________________ # -# asmlinkage long -# sys_timer_settime(timer_t timer_id, +# long sys_timer_settime(timer_t timer_id, # int flags, # const struct itimerspec __user *new_setting, # struct itimerspec __user *old_setting) @@ -2080,19 +2095,19 @@ probe syscall.timer_settime = kernel.function("sys_timer_settime") { flags = $flags value_uaddr = $new_setting ovalue_uaddr = $old_setting - argstr = sprintf("%d, %d, %s, %s", $timer_id, $flags, + argstr = sprintf("%d, %d, %s, %p", $timer_id, $flags, _struct_itimerspec_u($new_setting), - _struct_itimerspec_u($old_setting)) + $old_setting) } probe syscall.timer_settime.return = kernel.function("sys_timer_settime").return { name = "timer_settime" retstr = returnstr(1) } + # times ______________________________________________________ # -# asmlinkage long -# sys_times(struct tms __user * tbuf) +# long sys_times(struct tms __user * tbuf) # probe syscall.times = kernel.function("sys_times") { name = "times" @@ -2104,12 +2119,13 @@ probe syscall.times = kernel.function("sys_times") { * buf_tms_cutime = __uget_tms_m($tbuf,2) * buf_tms_cstime = __uget_tms_m($tbuf,3) */ - argstr = sprintf("[%p]", buf_uaddr) + argstr = sprintf("%p", buf_uaddr) } probe syscall.times.return = kernel.function("sys_times").return { name = "times" retstr = returnstr(1) } + # tkill ______________________________________________________ # # asmlinkage long @@ -2145,6 +2161,33 @@ probe syscall.truncate.return = kernel.function("sys_truncate").return ?, kernel retstr = returnstr(1) } +# tux ________________________________________________________ +# long sys_tux (unsigned int action, user_req_t *u_info) +# +probe syscall.tux = kernel.function("sys_tux") ? { + name = "tux" + action = $action + u_info_uaddr = $u_info + argstr = sprintf("%d, %p", $action, $u_info) +} +probe syscall.tux.return = kernel.function("sys_tux").return ? { + name = "tux" + retstr = returnstr(1) +} + +# umask ______________________________________________________ +# long sys_umask(int mask) +# +probe syscall.umask = kernel.function("sys_umask") { + name = "umask" + mask = $mask + argstr = sprintf("%#o", $mask) +} +probe syscall.umask.return = kernel.function("sys_umask").return { + name = "umask" + retstr = returnstr(3) +} + # umount _____________________________________________________ # long sys_umount(char __user * name, int flags) # @@ -2209,7 +2252,7 @@ probe syscall.ustat = kernel.function("sys_ustat") { name = "ustat" dev = $dev ubuf_uaddr = $ubuf - argstr = sprintf("%d, [%p]", $dev, ubuf_uaddr) + argstr = sprintf("%d, %p", $dev, ubuf_uaddr) } probe syscall.ustat.return = kernel.function("sys_ustat").return { name = "ustat" @@ -2277,7 +2320,7 @@ probe syscall.wait4 = kernel.function("sys_wait4") { options = $options options_str = _wait4_opt_str($options) rusage_uaddr = $ru - argstr = sprintf("%d, [%p], %s, [%p]", $pid, status_uaddr, + argstr = sprintf("%d, %p, %s, %p", $pid, status_uaddr, options_str, rusage_uaddr) } @@ -2303,7 +2346,7 @@ probe syscall.waitid = kernel.function("sys_waitid") { options = $options options_str = _wait4_opt_str($options) rusage_uaddr = $ru - argstr = sprintf("%d, %d, [%p], %s, [%p]", $which, $pid, + argstr = sprintf("%d, %d, %p, %s, %p", $which, $pid, infop_uaddr, options_str, rusage_uaddr) } probe syscall.waitid.return = kernel.function("sys_waitid").return { @@ -2326,7 +2369,7 @@ 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, + argstr = sprintf("%d, %p, %s, %p", $pid, status_uaddr, options_str, rusage_uaddr) } probe syscall.waitpid.return = kernel.function("sys_wait4").return { @@ -2364,9 +2407,9 @@ probe syscall.writev = kernel.function("sys_writev") { /* FIXME: RHEL4 U3 ppc64 can't resolve $fd */ %( arch != "ppc64" %? fd = $fd - argstr = sprintf("%d, [%p], %d", $fd, $vec, $vlen) + argstr = sprintf("%d, %p, %d", $fd, $vec, $vlen) %: - argstr = sprintf("unknown fd, [%p], %d", $vec, $vlen) + argstr = sprintf("unknown fd, %p, %d", $vec, $vlen) %) } probe syscall.writev.return = kernel.function("sys_writev").return { diff --git a/tapset/x86_64/syscalls.stp b/tapset/x86_64/syscalls.stp index ffe6df40..c5d2d3b1 100644 --- a/tapset/x86_64/syscalls.stp +++ b/tapset/x86_64/syscalls.stp @@ -4,7 +4,7 @@ probe syscall.getgroups16 = kernel.function("sys_getgroups16") { name = "getgroups16" size = $gidsetsize list_uaddr = $grouplist - argstr = sprintf("%d, [%p]", size, list_uaddr) + argstr = sprintf("%d, %p", size, list_uaddr) } probe syscall.getgroups16.return = kernel.function("sys_getgroups16").return { name = "getgroups16" @@ -29,37 +29,6 @@ probe syscall.setgroups16.return = kernel.function("sys_setgroups16").return { } -# 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" - retstr = returnstr(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" -# retstr = returnstr(1) -#} # quotactl ___________________________________________________ # @@ -76,7 +45,7 @@ probe syscall.quotactl = kernel.function("sys_quotactl") { special_str = user_string($special) id = $id addr_uaddr = $addr - argstr = sprintf("%s, %s, %p, [%p]", cmd_str, special_str, + argstr = sprintf("%s, %s, %p, %p", cmd_str, special_str, id, addr_uaddr) } probe syscall.quotactl.return = kernel.function("sys_quotactl").return { @@ -97,7 +66,7 @@ probe syscall.request_key = kernel.function("sys_request_key") { description_uaddr = $_description callout_info_uaddr = $_callout_info destringid = $destringid - argstr = sprintf("[%p], [%p], [%p], %p", type_uaddr, + argstr = sprintf("%p, %p, %p, %p", type_uaddr, description_uaddr, callout_info_uaddr, destringid) } probe syscall.request_key.return = kernel.function("sys_request_key").return { @@ -105,209 +74,66 @@ probe syscall.request_key.return = kernel.function("sys_request_key").return { retstr = returnstr(1) } + +# arch_prctl _________________________________________________ +# long sys_arch_prctl(int code, unsigned long addr) # -# OLD STUFF here, need more works +# NOTE: x86_64 only. # -# arch_prctl _________________________________________________ -/* - * long sys_arch_prctl(int code, - * unsigned long addr) - */ -probe kernel.syscall.arch_prctl = - kernel.function("sys_arch_prctl") { +probe syscall.arch_prctl = kernel.function("sys_arch_prctl") { name = "arch_prctl" code = $code addr = $addr argstr = sprintf("%d, %p", $code, $addr) } -probe kernel.syscall.arch_prctl.return = - kernel.function("sys_arch_prctl").return { +probe syscall.arch_prctl.return = kernel.function("sys_arch_prctl").return { name = "arch_prctl" retstr = returnstr(1) } -# get_mempolicy ______________________________________________ -/* - * asmlinkage long - * sys_get_mempolicy(int __user *policy, - * unsigned long __user *nmask, - * unsigned long maxnode, - * unsigned long addr, - * unsigned long flags) - */ -probe kernel.syscall.get_mempolicy = - kernel.function("sys_get_mempolicy") { - name = "get_mempolicy" - policy_uaddr = $policy - nmask_uaddr = $nmask - maxnode = $maxnode - addr = $addr - flags = $flags - argstr = sprintf("[%p], [%p], %d, %p, %d", policy_uaddr, - nmask_uaddr, $maxnode, $addr, $flags) -} -probe kernel.syscall.get_mempolicy.return = - kernel.function("sys_get_mempolicy").return { - name = "get_mempolicy" - retstr = returnstr(1) -} + # iopl _______________________________________________________ -/* - * asmlinkage long - * sys_iopl(unsigned long unused) - */ -probe kernel.syscall.iopl = kernel.function("sys_iopl") { +# long sys_iopl(unsigned int level, struct pt_regs *regs); +# NOTE. This function is only in i386 and x86_64 and its args vary +# between those two archs. +# +probe syscall.iopl = kernel.function("sys_iopl") { name = "iopl" level = $level argstr = sprint($level) } -probe kernel.syscall.iopl.return = kernel.function("sys_iopl").return { +probe syscall.iopl.return = kernel.function("sys_iopl").return { name = "iopl" retstr = returnstr(1) } -# mbind ______________________________________________________ -/* - * asmlinkage long - * sys_mbind(unsigned long start, - * unsigned long len, - * unsigned long mode, - * unsigned long __user *nmask, - * unsigned long maxnode, - * unsigned flags) - */ -probe kernel.syscall.mbind = kernel.function("sys_mbind") { - name = "mbind" - start = $start - len = $len - mode = $mode - nmask_uaddr = $nmask - maxnode = $maxnode - flags = $flags - argstr = sprintf("%d, %d, %d, [%p], %d, %d", $start, $len, $mode, - nmask_uaddr, $maxnode, $flags) -} -probe kernel.syscall.mbind.return = kernel.function("sys_mbind").return { - name = "mbind" - retstr = returnstr(1) -} -# rt_sigreturn _______________________________________________ -/* - * asmlinkage int - * sys_rt_sigreturn(unsigned long __unused) - */ -probe kernel.syscall.rt_sigreturn = kernel.function("sys_rt_sigreturn") { - name = "rt_sigreturn" - regs = $regs - argstr = "" -} -probe kernel.syscall.rt_sigreturn.return = - kernel.function("sys_rt_sigreturn").return { - name = "rt_sigreturn" - retstr = returnstr(1) -} -# sched_setaffinity __________________________________________ -/* - * asmlinkage long - * sys_sched_setaffinity(pid_t pid, - * unsigned int len, - * unsigned long __user *user_mask_ptr) - */ -probe kernel.syscall.sched_setaffinity = - kernel.function("sys_sched_setaffinity") { - name = "sched_setaffinity" - pid = $pid - len = $len - /* - * doesnt like $len on x86_64 ???? - */ - mask_uaddr = $user_mask_ptr - argstr = sprintf("%d, %d, [%p]", $pid, $len, mask_uaddr) -} -probe kernel.syscall.sched_setaffinity.return = - kernel.function("sys_sched_setaffinity").return { - name = "sched_setaffinity" - retstr = returnstr(1) -} -# set_mempolicy ______________________________________________ -/* - * asmlinkage long - * sys_set_mempolicy(int mode, - * unsigned long __user *nmask, - * unsigned long maxnode) - */ -probe kernel.syscall.set_mempolicy = kernel.function("sys_set_mempolicy") { - name = "set_mempolicy" - mode = $mode - nmask_uaddr = $nmask - maxnode = $maxnode - argstr = sprintf("%d, [%p], %d", $mode, nmask_uaddr, $maxnode) -} -probe kernel.syscall.set_mempolicy.return = - kernel.function("sys_set_mempolicy").return { - name = "set_mempolicy" - retstr = returnstr(1) -} # sigaltstack ________________________________________________ -/* - * asmlinkage int - * sys_sigaltstack(unsigned long ebx) - */ -probe kernel.syscall.sigaltstack = kernel.function("sys_sigaltstack") { +# long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, +# struct pt_regs *regs) +# +# NOTE: args vary between archs. +# +probe syscall.sigaltstack = kernel.function("sys_sigaltstack") { name = "sigaltstack" uss_uaddr = $uss uoss_uaddr = $uoss regs_uaddr = $regs - argstr = sprintf("[%p], [%p]", uss_uaddr, uoss_uaddr) + argstr = sprintf("%p, %p", $uss, $uoss) } -probe kernel.syscall.sigaltstack.return = - kernel.function("sys_sigaltstack").return { +probe syscall.sigaltstack.return = kernel.function("sys_sigaltstack").return { name = "sigaltstack" retstr = returnstr(1) } + # time64 _____________________________________________________ -/* - * asmlinkage long - * sys_time64(long __user * tloc) - */ -probe kernel.syscall.time64 = kernel.function("sys_time64") { +# long sys_time64(long __user * tloc) +# +probe syscall.time64 = kernel.function("sys_time64") { name = "time64" t_uaddr = $tloc - argstr = sprintf("[%p]", t_uaddr) + argstr = sprintf("%p", $tloc) } -probe kernel.syscall.time64.return = kernel.function("sys_time64").return { +probe syscall.time64.return = kernel.function("sys_time64").return { name = "time64" retstr = returnstr(1) } -# tux ________________________________________________________ -/* - * asmlinkage long - * sys_tux (unsigned int action, - * user_req_t *u_info) - */ -#probe kernel.syscall.tux = kernel.function("sys_tux") { -# name = "tux" -# action = $action -# u_info_uaddr = $u_info -# argstr = sprintf("%d, [%p]", $action, u_info_uaddr) -#} -#probe kernel.syscall.tux.return = kernel.function("sys_tux").return { -# name = "tux" -# retstr = returnstr(1) -#} - -# umask ______________________________________________________ -/* - * asmlinkage long - * sys_umask(int mask) - */ -probe syscall.umask = kernel.function("sys_umask") { - name = "umask" - mask = $mask - argstr = sprintf("%#o", $mask) -} -probe syscall.umask.return = - kernel.function("sys_umask").return { - name = "umask" - retstr = returnstr(3) -} |