]> sourceware.org Git - systemtap.git/commitdiff
Some progress but still more works.
authorhien <hien>
Thu, 16 Feb 2006 00:39:58 +0000 (00:39 +0000)
committerhien <hien>
Thu, 16 Feb 2006 00:39:58 +0000 (00:39 +0000)
tapset/syscalls2.stp

index ac34610a2866dd9c7cbe1e6e0796568ab6ad0cb6..0212c9dc0b4b8d3915558e8758b61db2313d8c63 100644 (file)
@@ -64,14 +64,7 @@ probe syscall.nanosleep = kernel.function("sys_nanosleep") {
        name = "nanosleep"
        req_uaddr = $rqtp
        rem_uaddr = $rmtp
-       /*
-        * XXX NOT SAFE -- might sleep
-        * req_tv_sec  = __uget_ts_m($rqtp,0)
-        * req_tv_nsec = __uget_ts_m($rqtp,1)
-        * rem_tv_sec  = __uget_ts_m($rmtp,0)
-        * rem_tv_nsec = __uget_ts_m($rmtp,1)
-        */
-       argstr = sprintf("[0x%x], [0x%x]", req_uaddr, rem_uaddr)
+       argstr = _struct_timespec_u(req_uaddr)
 }
 probe syscall.nanosleep.return = kernel.function("sys_nanosleep").return {
        name = "nanosleep"
@@ -166,7 +159,7 @@ probe syscall.nice =
    kernel.function("sys_nice") {
        name = "nice"
        inc = $increment
-       argstr = sprintf("0x%x", inc)
+       argstr = sprintf("%d", inc)
 }
 probe syscall.nice.return = kernel.function("sys_nice").return {
        name = "nice"
@@ -210,7 +203,9 @@ probe syscall.old_getrlimit.return = kernel.function("sys_old_getrlimit").return
 probe syscall.oldumount = kernel.function("sys_umount") {
        name = "oldumount"
        name_str = user_string($name)
-       argstr = sprintf("%s", name_str)
+       /* man page 2 umount shows the argument name as "target" */
+       target = name_str
+       argstr = name_str
 }
 probe syscall.oldumount.return = kernel.function("sys_umount").return {
        name = "oldumount"
@@ -320,7 +315,7 @@ probe syscall.personality.return = kernel.function("sys_personality").return {
 probe syscall.pipe = kernel.function("sys_pipe") {
        name = "pipe"
        fildes_uaddr = $fildes
-       argstr = sprintf("[0x%x]", fildes_uaddr)
+       argstr = _fildes_u(fildes_uaddr)
 }
 probe syscall.pipe.return = kernel.function("sys_pipe").return {
        name = "pipe"
@@ -652,9 +647,9 @@ probe syscall.remap_file_pages.return =
 #
 probe syscall.removexattr = kernel.function("sys_removexattr") {
        name = "removexattr"
-       path_str = user_string($path)
+       path = user_string($path)
        name_str = user_string($name)
-       argstr = sprintf("%s, %s", path_str, name_str)
+       argstr = sprintf("%s, %s", path, name_str)
 }
 probe syscall.removexattr.return = kernel.function("sys_removexattr").return {
        name = "removexattr"
@@ -668,9 +663,9 @@ probe syscall.removexattr.return = kernel.function("sys_removexattr").return {
 #
 probe syscall.rename = kernel.function("sys_rename") {
        name = "rename"
-       oldpath_str = user_string($oldname)
-       newpath_str = user_string($newname)
-       argstr = sprintf("%s, %s", oldpath_str, newpath_str)
+       oldpath = user_string($oldname)
+       newpath = user_string($newname)
+       argstr = sprintf("%s, %s", oldpath, newpath)
 }
 probe syscall.rename.return = kernel.function("sys_rename").return {
        name = "rename"
@@ -718,8 +713,8 @@ probe syscall.restart_syscall.return =
 #
 probe syscall.rmdir = kernel.function("sys_rmdir") {
        name = "rmdir"
-       pathname_str = user_string($pathname)
-       argstr = pathname_str
+       pathname = user_string($pathname)
+       argstr = pathname
 }
 probe syscall.rmdir.return = kernel.function("sys_rmdir").return {
        name = "rmdir"
@@ -731,8 +726,7 @@ probe syscall.rmdir.return = kernel.function("sys_rmdir").return {
 # sys_rt_sigaction(int sig,
 #                      const struct sigaction __user *act,
 #                      struct sigaction __user *oact,
-#                      size_t sigsetsize,
-#                      void __user *restorer)
+#                      size_t sigsetsize)
 #
 probe syscall.rt_sigaction = kernel.function("sys_rt_sigaction") {
        name = "rt_sigaction"
@@ -740,11 +734,8 @@ probe syscall.rt_sigaction = kernel.function("sys_rt_sigaction") {
        act_uaddr = $act
        oact_uaddr = $oact
        sigsetsize = $sigsetsize
-       /*
-        * unable to find local 'restorer' (maybe i386 specific)
-        * restorer_uaddr = $restorer
-        */
-       argstr = sprintf("%d, [0x%x], [0x%x], 0x%x", sig,
+
+       argstr = sprintf("%s, [0x%x], [0x%x], 0x%x", _signal_name($sig),
                        act_uaddr, oact_uaddr, sigsetsize)
 }
 probe syscall.rt_sigaction.return = kernel.function("sys_rt_sigaction").return {
@@ -802,7 +793,7 @@ probe syscall.rt_sigqueueinfo = kernel.function("sys_rt_sigqueueinfo") {
        pid = $pid
        sig = $sig
        uinfo_uaddr = $uinfo
-       argstr = sprintf("0x%x, 0x%x, [0x%x]", pid, sig, uinfo_uaddr)
+       argstr = sprintf("0x%x, %s, [0x%x]", pid, _signal_name($sig), uinfo_uaddr)
 }
 probe syscall.rt_sigqueueinfo.return =
        kernel.function("sys_rt_sigqueueinfo").return {
@@ -816,10 +807,7 @@ probe syscall.rt_sigqueueinfo.return =
 #
 probe syscall.rt_sigsuspend = kernel.function("sys_rt_sigsuspend") {
        name = "rt_sigsuspend"
-       /*
-        * unsupported type identifier '$regs'
-        * regs = $regs
-        */
+       regs = $regs
        argstr = ""
 }
 probe syscall.rt_sigsuspend.return = kernel.function("sys_rt_sigsuspend").return {
@@ -860,7 +848,7 @@ probe syscall.sched_getaffinity = kernel.function("sys_sched_getaffinity") {
        pid = $pid
        len = $len
        mask_uaddr = $user_mask_ptr
-       argstr = sprintf("0x%x, 0x%x, [0x%x]", pid, len, mask_uaddr)
+       argstr = sprintf("%d, 0x%x, [0x%x]", pid, len, mask_uaddr)
 }
 probe syscall.sched_getaffinity.return =
        kernel.function("sys_sched_getaffinity").return {
@@ -877,7 +865,7 @@ probe syscall.sched_getparam = kernel.function("sys_sched_getparam") {
        name = "sched_getparam"
        pid = $pid
        p_uaddr = $param
-       argstr = ""
+       argstr = sprintf("%d, [0x%x]", pid, p_uaddr)
 }
 probe syscall.sched_getparam.return =
        kernel.function("sys_sched_getparam").return {
@@ -893,7 +881,7 @@ probe syscall.sched_get_priority_max =
        kernel.function("sys_sched_get_priority_max") {
        name = "sched_get_priority_max"
        policy = $policy
-       argstr = ""
+       argstr = string(policy)
 }
 probe syscall.sched_get_priority_max.return =
        kernel.function("sys_sched_get_priority_max").return {
@@ -909,7 +897,7 @@ probe syscall.sched_get_priority_min =
        kernel.function("sys_sched_get_priority_min") {
        name = "sched_get_priority_min"
        policy = $policy
-       argstr = ""
+       argstr = string(policy)
 }
 probe syscall.sched_get_priority_min.return =
        kernel.function("sys_sched_get_priority_min").return {
@@ -924,7 +912,7 @@ probe syscall.sched_get_priority_min.return =
 probe syscall.sched_getscheduler = kernel.function("sys_sched_getscheduler") {
        name = "sched_getscheduler"
        pid = $pid
-       argstr = ""
+       argstr = string(pid)
 }
 probe syscall.sched_getscheduler.return =
        kernel.function("sys_sched_getscheduler").return {
@@ -942,7 +930,7 @@ probe syscall.sched_rr_get_interval =
        name = "sched_rr_get_interval"
        pid = $pid
        tp_uaddr = $interval
-       argstr = ""
+       argstr = sprintf("%d, %s", pid, _struct_timespec_u(tp_uaddr))
 }
 probe syscall.sched_rr_get_interval.return =
        kernel.function("sys_sched_rr_get_interval").return {
@@ -978,7 +966,10 @@ probe syscall.select = kernel.function("sys_select") {
        writefds_uaddr = $outp
        exceptfds_uaddr = $exp
        timeout_uaddr = $tvp
-       argstr = ""
+       argstr = sprintf("%d, %s, %s, %s, %s", n, _fd_set_u(readfds_uaddr),
+                               _fd_set_u(writefds_uaddr),
+                               _fd_set_u(exceptfds_uaddr),
+                               _struct_timeval_u(timeout_uaddr))
 }
 probe syscall.select.return = kernel.function("sys_select").return {
        name = "select"
@@ -1001,7 +992,7 @@ probe syscall.semctl = kernel.function("sys_semctl") {
         * unsupported type tag identifier '$arg'
         * arg = $arg
         */
-       argstr = ""
+       argstr = sprintf("%d, %d, %s", semid, semnum, _semctl_cmd(cmd))
 }
 probe syscall.semctl.return = kernel.function("sys_semctl").return {
        name = "semctl"
@@ -1019,7 +1010,7 @@ probe syscall.semget = kernel.function("sys_semget") {
        key = $key
        nsems = $nsems
        semflg = $semflg
-       argstr = ""
+       argstr = sprintf("%d, %d, %s", key, nsems, __sem_flags(semflg))
 }
 probe syscall.semget.return = kernel.function("sys_semget").return {
        name = "semget"
@@ -1037,7 +1028,7 @@ probe syscall.semop = kernel.function("sys_semtimedop") {
        semid = $semid
        tsops_uaddr = $tsops
        nsops = $nsops
-       argstr = ""
+       argstr = sprintf("%d, [0x%x], %d", semid, tsops_uaddr, nsops)
 }
 probe syscall.semop.return = kernel.function("sys_semtimedop").return {
        name = "semop"
@@ -1057,7 +1048,8 @@ probe syscall.semtimedop = kernel.function("sys_semtimedop") {
        sops_uaddr = $tsops
        nsops = $nsops
        timeout_uaddr = $timeout
-       argstr = ""
+       argstr = sprintf("%d, [0x%x], %d, %s", semid, sops_uaddr, nsops,
+                               _struct_timespec_u(timeout_uaddr))
 }
 probe syscall.semtimedop.return = kernel.function("sys_semtimedop").return {
        name = "semtimedop"
This page took 0.035197 seconds and 5 git commands to generate.