From 1d19665b79fcbc99d90d3a660a43a1c5dc6a2365 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 22 Oct 2012 13:55:49 -0700 Subject: [PATCH] tapset: Add the macro @choose_defined and use it This returns the first parameter if it's @defined, otherwise it returns the second parameter, replacing the common @defined(x)?x:y pattern. I only updated the tapsets to use this, as I feel that's where we should show off good code practice. There are opportunities in the testsuite that could use it too, but it's not necessary, and probably better to leave existing tests undisturbed when possible. --- tapset/choose_defined.stpm | 4 ++ tapset/linux/dentry.stp | 10 ++-- tapset/linux/i386/syscalls.stp | 4 +- tapset/linux/inet_sock.stp | 8 +-- tapset/linux/ioblock.stp | 8 +-- tapset/linux/ioscheduler.stp | 89 +++++++++++++-------------- tapset/linux/ip.stp | 22 +++---- tapset/linux/ipmib.stp | 16 ++--- tapset/linux/irq.stp | 12 ++-- tapset/linux/linuxmib.stp | 2 +- tapset/linux/memory.stp | 8 +-- tapset/linux/networking.stp | 2 +- tapset/linux/nfs.stp | 14 ++--- tapset/linux/nfs_proc.stp | 11 ++-- tapset/linux/nfsd.stp | 14 ++--- tapset/linux/rpc.stp | 45 +++++--------- tapset/linux/scheduler.stp | 4 +- tapset/linux/scsi.stp | 15 +++-- tapset/linux/signal.stp | 8 +-- tapset/linux/socket.stp | 4 +- tapset/linux/syscalls.stp | 100 +++++++++++++++---------------- tapset/linux/syscalls2.stp | 54 ++++++++--------- tapset/linux/task.stp | 12 ++-- tapset/linux/tcp.stp | 20 +++---- tapset/linux/tcpmib.stp | 2 +- tapset/linux/tty.stp | 24 ++++---- tapset/linux/vfs.stp | 13 ++-- tapset/linux/x86_64/syscalls.stp | 2 +- 28 files changed, 237 insertions(+), 290 deletions(-) create mode 100644 tapset/choose_defined.stpm diff --git a/tapset/choose_defined.stpm b/tapset/choose_defined.stpm new file mode 100644 index 000000000..60800951d --- /dev/null +++ b/tapset/choose_defined.stpm @@ -0,0 +1,4 @@ +// Use the first parameter if it's @defined, otherwise use the second parameter +@define choose_defined(value_if_defined, alternate) %( + ( @defined(@value_if_defined) ? (@value_if_defined) : (@alternate) ) +%) diff --git a/tapset/linux/dentry.stp b/tapset/linux/dentry.stp index 7b4bfdb99..035bbe39e 100644 --- a/tapset/linux/dentry.stp +++ b/tapset/linux/dentry.stp @@ -181,12 +181,10 @@ function task_dentry_path:string(task:long,dentry:long,vfsmnt:long) */ function d_path:string(nd:long) { - dentry = (@defined(@cast(nd,"nameidata")->path->dentry) - ? @cast(nd,"nameidata")->path->dentry - : @cast(nd,"nameidata")->dentry) - vfsmnt = (@defined(@cast(nd,"nameidata")->path->mnt) - ? @cast(nd,"nameidata")->path->mnt - : @cast(nd,"nameidata")->mnt) + dentry = @choose_defined(@cast(nd,"nameidata")->path->dentry, + @cast(nd,"nameidata")->dentry) + vfsmnt = @choose_defined(@cast(nd,"nameidata")->path->mnt, + @cast(nd,"nameidata")->mnt) return sprintf("%s/", task_dentry_path(task_current(), dentry, vfsmnt)) } diff --git a/tapset/linux/i386/syscalls.stp b/tapset/linux/i386/syscalls.stp index e1990bdb9..9be16d5b8 100644 --- a/tapset/linux/i386/syscalls.stp +++ b/tapset/linux/i386/syscalls.stp @@ -139,8 +139,8 @@ probe syscall.sigaltstack = kernel.function("sys_sigaltstack") ussp = %( kernel_vr < "2.6.25" %? $ebx %: %( kernel_vr < "2.6.30" %? $bx %: $regs->bx %) %) %) if (@defined($regs)) { - uss_uaddr = (@defined($uss) ? $uss : $regs->bx) - uoss_uaddr = (@defined($uoss) ? $uoss : $regs->cx) + uss_uaddr = @choose_defined($uss, $regs->bx) + uoss_uaddr = @choose_defined($uoss, $regs->cx) regs = $regs } else if (@defined($bx)) { # kernels < "2.6.30" diff --git a/tapset/linux/inet_sock.stp b/tapset/linux/inet_sock.stp index fda46fb63..72b2be7de 100644 --- a/tapset/linux/inet_sock.stp +++ b/tapset/linux/inet_sock.stp @@ -14,11 +14,9 @@ */ function inet_get_local_port:long(sock:long) { - return (@defined(@cast(sock, "inet_sock")->inet_num) - ? @cast(sock, "inet_sock")->inet_num # kernel >= 2.6.33 - : (@defined(@cast(sock, "inet_sock")->num) - ? @cast(sock, "inet_sock", "kernel")->num # kernel >= 2.6.11 - : @cast(sock, "inet_sock", "kernel")->inet->num)) + return @choose_defined(@cast(sock, "inet_sock")->inet_num, # kernel >= 2.6.33 + @choose_defined(@cast(sock, "inet_sock")->num, # kernel >= 2.6.11 + @cast(sock, "inet_sock", "kernel")->inet->num)) } /** diff --git a/tapset/linux/ioblock.stp b/tapset/linux/ioblock.stp index 40bfd1a82..2d1577fe2 100644 --- a/tapset/linux/ioblock.stp +++ b/tapset/linux/ioblock.stp @@ -109,8 +109,7 @@ probe ioblock.request = kernel.function ("generic_make_request") vcnt = $bio->bi_vcnt idx = $bio->bi_idx phys_segments = $bio->bi_phys_segments - hw_segments = (@defined($bio->bi_hw_segments) - ? $bio->bi_hw_segments : 0) + hw_segments = @choose_defined($bio->bi_hw_segments, 0) size = $bio->bi_size bdev = $bio->bi_bdev @@ -152,7 +151,7 @@ probe ioblock.end = kernel.function("bio_endio") devname = __bio_devname($bio) ino = __bio_ino($bio) - bytes_done = (@defined($bytes_done) ? $bytes_done : $bio->bi_size) + bytes_done = @choose_defined($bytes_done, $bio->bi_size) error = $error sector = $bio->bi_sector @@ -161,8 +160,7 @@ probe ioblock.end = kernel.function("bio_endio") vcnt = $bio->bi_vcnt idx = $bio->bi_idx phys_segments = $bio->bi_phys_segments - hw_segments = (@defined($bio->bi_hw_segments) - ? $bio->bi_hw_segments : 0) + hw_segments = @choose_defined($bio->bi_hw_segments, 0) size = $bio->bi_size } diff --git a/tapset/linux/ioscheduler.stp b/tapset/linux/ioscheduler.stp index e90bf7aee..842e27e6a 100644 --- a/tapset/linux/ioscheduler.stp +++ b/tapset/linux/ioscheduler.stp @@ -23,11 +23,10 @@ probe ioscheduler.elv_next_request = kernel.function("blk_peek_request") !, kernel.function("elv_next_request") { name = "elv_next_request" - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) } /** @@ -50,8 +49,7 @@ probe ioscheduler.elv_next_request.return = disk_minor = -1 } else { rq = $return - rq_flags = (@defined($return->cmd_flags) ? $return->cmd_flags - : $return->flags) + rq_flags = @choose_defined($return->cmd_flags, $return->flags) if ($return->rq_disk == 0) { disk_major = -1 disk_minor = -1 @@ -75,11 +73,10 @@ probe ioscheduler.elv_completed_request = kernel.function("elv_completed_request") { name = "elv_completed_request" - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) if($rq == 0) { disk_major = -1 disk_minor = -1 @@ -95,7 +92,7 @@ probe ioscheduler.elv_completed_request rq = $rq rq_flags = ($rq == 0) ? 0 - : (@defined($rq->cmd_flags) ? $rq->cmd_flags : $rq->flags) + : @choose_defined($rq->cmd_flags, $rq->flags) } /** @@ -114,11 +111,10 @@ probe ioscheduler.elv_add_request.kp = kernel.function("__elv_add_request") { name = "elv_add_request" - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) q = $q if($rq == 0) { disk_major = -1 @@ -135,7 +131,7 @@ probe ioscheduler.elv_add_request.kp = rq = $rq rq_flags = ($rq == 0) ? 0 - : (@defined($rq->cmd_flags) ? $rq->cmd_flags : $rq->flags) + : @choose_defined($rq->cmd_flags, $rq->flags) } /** @@ -153,11 +149,10 @@ probe ioscheduler.elv_add_request.tp = kernel.trace("block_rq_insert") ? { name = "elv_add_request" q = $q - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) rq = $rq if ($rq == 0 || $rq->rq_disk ==0) { @@ -170,7 +165,7 @@ probe ioscheduler.elv_add_request.tp = kernel.trace("block_rq_insert") ? } rq_flags = ($rq == 0) ? 0 - : (@defined($rq->cmd_flags) ? $rq->cmd_flags : $rq->flags) + : @choose_defined($rq->cmd_flags, $rq->flags) } /** @@ -202,11 +197,10 @@ probe ioscheduler_trace.elv_completed_request = kernel.trace("block_rq_complete") ? { name = "elv_completed_request" - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) rq = $rq if ($rq == 0 || $rq->rq_disk ==0) { @@ -219,7 +213,7 @@ probe ioscheduler_trace.elv_completed_request } rq_flags = ($rq == 0) ? 0 - : (@defined($rq->cmd_flags) ? $rq->cmd_flags : $rq->flags) + : @choose_defined($rq->cmd_flags, $rq->flags) } /** @@ -237,11 +231,10 @@ probe ioscheduler_trace.elv_issue_request = kernel.trace("block_rq_issue") ? { name = "elv_issue_request" - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) rq = $rq if ($rq == 0 || $rq->rq_disk ==0) { @@ -254,7 +247,7 @@ probe ioscheduler_trace.elv_issue_request } rq_flags = ($rq == 0) ? 0 - : (@defined($rq->cmd_flags) ? $rq->cmd_flags : $rq->flags) + : @choose_defined($rq->cmd_flags, $rq->flags) } /** @@ -272,11 +265,10 @@ probe ioscheduler_trace.elv_requeue_request = kernel.trace("block_rq_requeue") ? { name = "elv_requeue_request" - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) rq = $rq if ($rq == 0 || $rq->rq_disk ==0) { @@ -289,7 +281,7 @@ probe ioscheduler_trace.elv_requeue_request } rq_flags = ($rq == 0) ? 0 - : (@defined($rq->cmd_flags) ? $rq->cmd_flags : $rq->flags) + : @choose_defined($rq->cmd_flags, $rq->flags) } /** @@ -306,11 +298,10 @@ probe ioscheduler_trace.elv_abort_request = kernel.trace("block_rq_abort") ? { name = "elv_abort_request" - elevator_name = kernel_string(@defined($q->elevator->type) - ? $q->elevator->type->elevator_name - : (@defined($q->elevator->elevator_type) - ? $q->elevator->elevator_type->elevator_name - : $q->elevator->elevator_name)) + elevator_name = kernel_string( + @choose_defined($q->elevator->type->elevator_name, + @choose_defined($q->elevator->elevator_type->elevator_name, + $q->elevator->elevator_name))) rq = $rq if ($rq == 0 || $rq->rq_disk ==0) { @@ -323,7 +314,7 @@ probe ioscheduler_trace.elv_abort_request } rq_flags = ($rq == 0) ? 0 - : (@defined($rq->cmd_flags) ? $rq->cmd_flags : $rq->flags) + : @choose_defined($rq->cmd_flags, $rq->flags) } /** diff --git a/tapset/linux/ip.stp b/tapset/linux/ip.stp index 133790e91..b1eea666d 100644 --- a/tapset/linux/ip.stp +++ b/tapset/linux/ip.stp @@ -84,12 +84,9 @@ function __ip_sock_saddr:long (sock:long) { family = @cast(sock, "inet_sock", "kernel")->sk->__sk_common->skc_family if (family == %{ /* pure */ /* unprivileged */ AF_INET %}) { - return (@defined(@cast(sock, "inet_sock")->inet_saddr) - ? @cast(sock, "inet_sock")->inet_saddr # kernel >= 2.6.33 - : (@defined(@cast(sock, "inet_sock")->saddr) - ? # kernel >= 2.6.11 - @cast(sock, "inet_sock", "kernel")->saddr - : @cast(sock, "inet_sock", "kernel")->inet->saddr)) + return @choose_defined(@cast(sock, "inet_sock")->inet_saddr, # kernel >= 2.6.33 + @choose_defined(@cast(sock, "inet_sock")->saddr, # kernel >= 2.6.11 + @cast(sock, "inet_sock", "kernel")->inet->saddr)) } %( CONFIG_IPV6 == "[ym]" %? else if (family == %{ /* pure */ /* unprivileged */ AF_INET6 %}) { @@ -104,15 +101,10 @@ function __ip_sock_daddr:long (sock:long) { family = @cast(sock, "inet_sock", "kernel")->sk->__sk_common->skc_family if (family == %{ /* pure */ /* unprivileged */ AF_INET %}) { - return (@defined(@cast(sock, "inet_sock")->sk->__sk_common->skc_daddr) - ? # kernel >= 2.6.38 - @cast(sock, "inet_sock")->sk->__sk_common->skc_daddr - : (@defined(@cast(sock, "inet_sock")->inet_daddr) - ? @cast(sock, "inet_sock")->inet_daddr # kernel >= 2.6.33 - : (@defined(@cast(sock, "inet_sock")->daddr) - ? # kernel >= 2.6.11 - @cast(sock, "inet_sock", "kernel")->daddr - : @cast(sock, "inet_sock", "kernel")->inet->daddr))) + return @choose_defined(@cast(sock, "inet_sock")->sk->__sk_common->skc_daddr, # kernel >= 2.6.38 + @choose_defined(@cast(sock, "inet_sock")->inet_daddr, # kernel >= 2.6.33 + @choose_defined(@cast(sock, "inet_sock")->daddr, # kernel >= 2.6.11 + @cast(sock, "inet_sock", "kernel")->inet->daddr))) } %( CONFIG_IPV6 == "[ym]" %? else if (family == %{ /* pure */ /* unprivileged */ AF_INET6 %}) { diff --git a/tapset/linux/ipmib.stp b/tapset/linux/ipmib.stp index 1ccb3bfd0..7de3ef1fd 100644 --- a/tapset/linux/ipmib.stp +++ b/tapset/linux/ipmib.stp @@ -335,7 +335,7 @@ probe ipmib.ForwDatagrams=kernel.function("ip_forward_finish") probe ipmib.OutRequests=kernel.function("ip_output"), kernel.function("ip_mc_output") { - skb = @defined($skb) ? $skb : kernel_pointer($pskb); + skb = @choose_defined($skb, kernel_pointer($pskb)); op = 1; SourceIsLocal = 1; key = ipmib_filter_key(skb,op,SourceIsLocal); @@ -429,20 +429,14 @@ function _rtn_unspec:long () function _input_route_type:long (skb:long) { - rt = (@defined(@cast(skb, "sk_buff")->_skb_dst) - ? @cast(skb, "sk_buff")->_skb_dst - : (@defined(@cast(skb, "sk_buff")->rtable) - ? @cast(skb, "sk_buff")->rtable - : 0)) + rt = @choose_defined(@cast(skb, "sk_buff")->_skb_dst, + @choose_defined(@cast(skb, "sk_buff")->rtable, 0)) return rt ? @cast(rt, "rtable")->rt_type : _rtn_unspec() } function _output_route_type:long (skb:long) { - rt = (@defined(@cast(skb, "sk_buff")->_skb_dst) - ? @cast(skb, "sk_buff")->_skb_dst - : (@defined(@cast(skb, "sk_buff")->dst) - ? @cast(skb, "sk_buff")->dst - : 0)) + rt = @choose_defined(@cast(skb, "sk_buff")->_skb_dst, + @choose_defined(@cast(skb, "sk_buff")->dst, 0)) return rt ? @cast(rt, "rtable")->rt_type : _rtn_unspec() } diff --git a/tapset/linux/irq.stp b/tapset/linux/irq.stp index 3f13cf406..984325328 100644 --- a/tapset/linux/irq.stp +++ b/tapset/linux/irq.stp @@ -136,11 +136,11 @@ probe softirq.entry = kernel.trace("irq_softirq_entry") !, kernel.trace("softirq_entry") ? { # kernels < 2.6.37 - h = (@defined($h) ? $h : 0) - vec = (@defined($vec) ? $vec : 0) + h = @choose_defined($h, 0) + vec = @choose_defined($vec, 0) action = (@defined($h) ? @cast($h,"softirq_action","kernel")->action : 0) # kernels >= 2.6.37 - vec_nr = (@defined($vec_nr) ? $vec_nr : 0) + vec_nr = @choose_defined($vec_nr, 0) } /** @@ -154,9 +154,9 @@ probe softirq.exit = kernel.trace("irq_softirq_exit") !, kernel.trace("softirq_exit") ? { # kernels < 2.6.37 - h = (@defined($h) ? $h : 0) - vec = (@defined($vec) ? $vec : 0) + h = @choose_defined($h, 0) + vec = @choose_defined($vec, 0) action = (@defined($h) ? @cast($h,"softirq_action","kernel")->action : 0) # kernels >= 2.6.37 - vec_nr = (@defined($vec_nr) ? $vec_nr : 0) + vec_nr = @choose_defined($vec_nr, 0) } diff --git a/tapset/linux/linuxmib.stp b/tapset/linux/linuxmib.stp index eabc8e7e8..8f87da3bd 100644 --- a/tapset/linux/linuxmib.stp +++ b/tapset/linux/linuxmib.stp @@ -102,7 +102,7 @@ probe linuxmib.ListenDrops=kernel.function("tcp_v4_syn_recv_sock").return */ probe linuxmib.TCPMemoryPressures=kernel.function("tcp_enter_memory_pressure") { - sk = (@defined($sk) ? $sk : 0) + sk = @choose_defined($sk, 0) op = 1; if ( $tcp_memory_pressure ) next key = linuxmib_filter_key(sk,op); diff --git a/tapset/linux/memory.stp b/tapset/linux/memory.stp index 825430079..ad878da64 100644 --- a/tapset/linux/memory.stp +++ b/tapset/linux/memory.stp @@ -519,8 +519,8 @@ probe __vm.kmalloc_node.kp = kernel.function("kmalloc_node").return ? # '$size' argument above). Note that we can see the '$flags' # argument on x86_64 f11 (2.6.29.4-167.fc11.x86_64). So, the # best we can do here is just use 0 when $flags isn't defined. - gfp_flags = (@defined($flags) ? $flags : 0) - gfp_flag_name = __gfp_flag_str(@defined($flags) ? $flags : 0) + gfp_flags = @choose_defined($flags, 0) + gfp_flag_name = __gfp_flag_str(@choose_defined($flags, 0)) ptr = $return } @@ -610,7 +610,7 @@ probe __vm.kfree.kp = kernel.function("kfree").return { call_site = 0 caller_function = "unknown" - ptr = (@defined($x) ? $x : $objp) + ptr = @choose_defined($x, $objp) } /** @@ -636,7 +636,7 @@ probe __vm.kmem_cache_free.kp = kernel.function("kmem_cache_free").return { call_site = 0 caller_function = "unknown" - ptr = (@defined($x) ? $x : $objp) + ptr = @choose_defined($x, $objp) } /** diff --git a/tapset/linux/networking.stp b/tapset/linux/networking.stp index cf78586ee..27f4c62ae 100644 --- a/tapset/linux/networking.stp +++ b/tapset/linux/networking.stp @@ -157,7 +157,7 @@ probe netdev.change_rx_flag = kernel.function("dev_change_rx_flags") ? { dev_name = (@defined($dev) ? get_netdev_name($dev) : "unknown") - flags = (@defined($flags) ? $flags : 0) + flags = @choose_defined($flags, 0) } /** diff --git a/tapset/linux/nfs.stp b/tapset/linux/nfs.stp index 87a25f8c9..f6ca2d71e 100644 --- a/tapset/linux/nfs.stp +++ b/tapset/linux/nfs.stp @@ -43,9 +43,7 @@ function __nfsi_ndirty:long (inode:long) { if (inode == 0) return -1 - return (@defined(@cast(NFS_I(inode), "nfs_inode", "kernel:nfs")->ndirty) - ? @cast(NFS_I(inode), "nfs_inode", "kernel:nfs")->ndirty - : -1) + return @choose_defined(@cast(NFS_I(inode), "nfs_inode", "kernel:nfs")->ndirty, -1) } /* Get rsize from struct inode */ @@ -137,9 +135,8 @@ function __p2sb_flag:long (page:long) function __file_inode:long (file:long) { dentry = file - ? (@defined(@cast(file, "file", "kernel:nfs")->f_path->dentry) - ? @cast(file, "file", "kernel:nfs")->f_path->dentry - : @cast(file, "file", "kernel:nfs")->f_dentry) + ? @choose_defined(@cast(file, "file", "kernel:nfs")->f_path->dentry, + @cast(file, "file", "kernel:nfs")->f_dentry) : 0 if (dentry == 0) return 0 @@ -165,9 +162,8 @@ function __file_mode:long (file:long) function __file_parentname:string (file:long) { dentry = file - ? (@defined(@cast(file, "file", "kernel:nfs")->f_path->dentry) - ? @cast(file, "file", "kernel:nfs")->f_path->dentry - : @cast(file, "file", "kernel:nfs")->f_dentry) + ? @choose_defined(@cast(file, "file", "kernel:nfs")->f_path->dentry, + @cast(file, "file", "kernel:nfs")->f_dentry) : 0 d_parent = dentry? @cast(dentry, "dentry", "kernel:nfs")->d_parent : 0 if (d_parent == 0) diff --git a/tapset/linux/nfs_proc.stp b/tapset/linux/nfs_proc.stp index b84509265..19078b14f 100644 --- a/tapset/linux/nfs_proc.stp +++ b/tapset/linux/nfs_proc.stp @@ -59,9 +59,8 @@ function stap_NFS_CLIENT:long(inode:long) function NFS_PROTO:long(inode:long) { nfsserver = NFS_SERVER(inode) - return (@defined(@cast(nfsserver, "nfs_server", "kernel:nfs")->nfs_client) - ? @cast(nfsserver, "nfs_server", "kernel:nfs")->nfs_client->rpc_ops - : @cast(nfsserver, "nfs_server", "kernel:nfs")->rpc_ops) + return @choose_defined(@cast(nfsserver, "nfs_server", "kernel:nfs")->nfs_client->rpc_ops, + @cast(nfsserver, "nfs_server", "kernel:nfs")->rpc_ops) } @@ -929,7 +928,7 @@ probe nfs.proc2.write_setup = kernel.function("nfs_proc_write_setup") !, count = $data->args->count offset = $data->args->offset - how = (@defined($how) ? $how : $data->args->stable) + how = @choose_defined($how, $data->args->stable) bitmask0 = 0 bitmask1 = 0 @@ -958,7 +957,7 @@ probe nfs.proc3.write_setup = kernel.function("nfs3_proc_write_setup") !, count = $data->args->count offset = $data->args->offset - how = (@defined($how) ? $how : $data->args->stable) + how = @choose_defined($how, $data->args->stable) bitmask0 = 0 bitmask1 = 0 @@ -986,7 +985,7 @@ probe nfs.proc4.write_setup = kernel.function("nfs4_proc_write_setup") !, count = $data->args->count offset = $data->args->offset - how = (@defined($how) ? $how : $data->args->stable) + how = @choose_defined($how, $data->args->stable) bitmask0 = __nfsv4_bitmask($data->inode,0) bitmask1 = __nfsv4_bitmask($data->inode,1) //timestamp = $jiffies diff --git a/tapset/linux/nfsd.stp b/tapset/linux/nfsd.stp index 3db2d70cf..579139ab5 100644 --- a/tapset/linux/nfsd.stp +++ b/tapset/linux/nfsd.stp @@ -348,7 +348,7 @@ probe nfsd.proc2.read = kernel.function("nfsd_proc_read") !, count = $argp->count offset = $argp->offset - vec = (@defined($rqstp->rq_vec) ? $rqstp->rq_vec : $argp->vec) + vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = $argp->vlen name = "nfsd.proc2.read" @@ -379,7 +379,7 @@ probe nfsd.proc3.read = kernel.function("nfsd3_proc_read") !, count = $argp->count offset = $argp->offset - vec = (@defined($rqstp->rq_vec) ? $rqstp->rq_vec : $argp->vec) + vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = $argp->vlen name = "nfsd.proc3.read" @@ -466,7 +466,7 @@ probe nfsd.proc2.write = kernel.function("nfsd_proc_write") !, count = $argp->len offset = $argp->offset - vec = (@defined($rqstp->rq_vec) ? $rqstp->rq_vec : $argp->vec) + vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = $argp->vlen stable = 1 # hardcoded in nfsd_proc_write() @@ -500,7 +500,7 @@ probe nfsd.proc3.write = kernel.function("nfsd3_proc_write") !, count = $argp->count offset = $argp->offset - vec = (@defined($rqstp->rq_vec) ? $rqstp->rq_vec : $argp->vec) + vec = @choose_defined($rqstp->rq_vec, $argp->vec) vlen = $argp->vlen stable = $argp->stable @@ -996,7 +996,7 @@ probe nfsd.open = kernel.function("nfsd_open") !, client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) - access = (@defined($access) ? $access : $may_flags) + access = @choose_defined($access, $may_flags) type = $type name = "nfsd.open" @@ -1053,7 +1053,7 @@ probe nfsd.read = kernel.function("nfsd_read") !, client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) - file = (@defined($file) ? $file : 0) + file = @choose_defined($file, 0) count = kernel_long($count) offset = $offset vec = $vec @@ -1094,7 +1094,7 @@ probe nfsd.write = kernel.function("nfsd_write") !, client_ip = addr_from_rqst_str($rqstp) fh = __svc_fh($fhp) - file = (@defined($file) ? $file : 0) + file = @choose_defined($file, 0) %( kernel_v >= "2.6.30" %? count = kernel_long($cnt) %: diff --git a/tapset/linux/rpc.stp b/tapset/linux/rpc.stp index d29b7bf8f..1aff639d3 100644 --- a/tapset/linux/rpc.stp +++ b/tapset/linux/rpc.stp @@ -172,8 +172,7 @@ probe _sunrpc.clnt.create_client.rpc_new_client_inline = authflavor = $args->authflavor prot = $xprt->prot - port = (@defined($xprt->port) - ? $xprt->port : port_from_xprt($xprt)) + port = @choose_defined($xprt->port, port_from_xprt($xprt)) } else { # kernel > 2.6.18 (with bad debuginfo) %(systemtap_v <= "1.7" %? @@ -204,8 +203,7 @@ probe _sunrpc.clnt.create_client.rpc_new_client = authflavor = $flavor prot = $xprt->prot - port = (@defined($xprt->port) - ? $xprt->port : port_from_xprt($xprt)) + port = @choose_defined($xprt->port, port_from_xprt($xprt)) } probe _sunrpc.clnt.create_client.rpc_create_client = @@ -227,8 +225,7 @@ probe _sunrpc.clnt.create_client.rpc_create_client = } prot = $xprt->prot - port = (@defined($xprt->port) - ? $xprt->port : port_from_xprt($xprt)) + port = @choose_defined($xprt->port, port_from_xprt($xprt)) } /* @@ -441,16 +438,12 @@ probe sunrpc.clnt.call_sync = kernel.function("rpc_call_sync") !, prot = prot_from_clnt($clnt) port = port_from_clnt($clnt) xid = xid_from_clnt($clnt) - dead = (@defined($clnt->cl_dead) ? $clnt->cl_dead - : (@defined(&$clnt->cl_kref->refcount) - ? (atomic_read(&$clnt->cl_kref->refcount) == 0) - : (atomic_read(&$clnt->cl_count) == 0))) + dead = @choose_defined($clnt->cl_dead, + atomic_read(@choose_defined(&$clnt->cl_kref->refcount, + &$clnt->cl_count)) == 0) proc = proc_from_msg($msg) - procname = (@defined($msg->rpc_proc->p_name) - ? ($msg->rpc_proc->p_name - ? kernel_string($msg->rpc_proc->p_name) : "NULL") - : "NULL") + procname = kernel_string2(@choose_defined($msg->rpc_proc->p_name, 0), "NULL") flags = $flags name = "sunrpc.clnt.call_sync" @@ -490,16 +483,12 @@ probe sunrpc.clnt.call_async = kernel.function("rpc_call_async") !, prot = prot_from_clnt($clnt) port = port_from_clnt($clnt) xid = xid_from_clnt($clnt) - dead = (@defined($clnt->cl_dead) ? $clnt->cl_dead - : (@defined(&$clnt->cl_kref->refcount) - ? (atomic_read(&$clnt->cl_kref->refcount) == 0) - : (atomic_read(&$clnt->cl_count) == 0))) + dead = @choose_defined($clnt->cl_dead, + atomic_read(@choose_defined(&$clnt->cl_kref->refcount, + &$clnt->cl_count)) == 0) proc = proc_from_msg($msg) - procname = (@defined($msg->rpc_proc->p_name) - ? ($msg->rpc_proc->p_name - ? kernel_string($msg->rpc_proc->p_name) : "NULL") - : "NULL") + procname = kernel_string2(@choose_defined($msg->rpc_proc->p_name, 0), "NULL") flags = $flags name = "sunrpc.clnt.call_async" @@ -1043,20 +1032,16 @@ function prog_from_clnt:long(clnt:long) { if (clnt == 0) return 0 - if (@defined(@cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_prog)) - return @cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_prog - else - return @cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_pmap->pm_prog + return @choose_defined(@cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_prog, + @cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_pmap->pm_prog) } function vers_from_clnt:long(clnt:long) { if (clnt == 0) return 0 - if (@defined(@cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_vers)) - return @cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_vers - else - return @cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_pmap->pm_vers + return @choose_defined(@cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_vers, + @cast(clnt, "rpc_clnt", "kernel:sunrpc")->cl_pmap->pm_vers) } function prot_from_clnt:long(clnt:long) diff --git a/tapset/linux/scheduler.stp b/tapset/linux/scheduler.stp index afce4eea7..7596a4670 100644 --- a/tapset/linux/scheduler.stp +++ b/tapset/linux/scheduler.stp @@ -297,8 +297,8 @@ probe __scheduler.migrate.kp = kernel.function("set_task_cpu") !, kernel.function("pull_task") ? { - cpu_to = (@defined($new_cpu) ? $new_cpu - : @defined($cpu) ? $cpu : $this_cpu) + cpu_to = @choose_defined($new_cpu, + @choose_defined($cpu, $this_cpu)) } probe __scheduler.migrate.tp = kernel.trace("sched_migrate_task") { diff --git a/tapset/linux/scsi.stp b/tapset/linux/scsi.stp index dafb70feb..b8f0c2cc2 100644 --- a/tapset/linux/scsi.stp +++ b/tapset/linux/scsi.stp @@ -64,7 +64,7 @@ probe scsi.ioentry.sr = probe scsi.ioentry = scsi.ioentry.* ? { - req_addr = @defined($req) ? $req : $rq; + req_addr = @choose_defined($req, $rq); if(@cast(req_addr,"request")->rq_disk == 0) { disk_major = -1 disk_minor = -1 @@ -104,10 +104,10 @@ probe scsi.iodispatching device_state_str = describe_device_state(device_state) data_direction = $cmd->sc_data_direction data_direction_str = describe_data_direction(data_direction) - request_buffer = (@defined($cmd->sdb->table->sgl) - ? $cmd->sdb->table->sgl : $cmd->request_buffer) - request_bufflen = (@defined($cmd->sdb->length) - ? $cmd->sdb->length : $cmd->request_bufflen) + request_buffer = @choose_defined($cmd->sdb->table->sgl, + $cmd->request_buffer) + request_bufflen = @choose_defined($cmd->sdb->length, + $cmd->request_bufflen) req_addr = $cmd->request } @@ -175,9 +175,8 @@ probe scsi.iocompleted function timer_pending:long(timer:long) { - return (@defined(@cast(timer, "timer_list")->entry->next) - ? (@cast(timer, "timer_list")->entry->next != 0) - : (@cast(timer, "timer_list")->base != 0)) + return (@choose_defined(@cast(timer, "timer_list")->entry->next, + @cast(timer, "timer_list")->base) != 0) } function scsi_timer_pending:long(cmd:long) diff --git a/tapset/linux/signal.stp b/tapset/linux/signal.stp index e9a5b94fc..f0cfbbc44 100644 --- a/tapset/linux/signal.stp +++ b/tapset/linux/signal.stp @@ -60,9 +60,9 @@ probe signal.send = __signal.send.send_sigqueue, probe __signal.send.send_sigqueue = kernel.function("send_sigqueue") { name = "send_sigqueue" - task = (@defined($t) ? $t : $p) - sig = (@defined($q->info->si_signo) ? $q->info->si_signo : $sig) - sinfo = (@defined($q->info) ? $q->info : 0) + task = @choose_defined($t, $p) + sig = @choose_defined($q->info->si_signo, $sig) + sinfo = @choose_defined($q->info, 0) shared = 0 send2queue = 1 } @@ -609,7 +609,7 @@ probe signal.handle = kernel.function("handle_rt_signal64") ?, sinfo = $info sig_code = $info->si_code ka_addr = $ka - oldset_addr = (@defined($oldset) ? $oldset : $set) + oldset_addr = @choose_defined($oldset, $set) regs = $regs // Check whether the signal is a User Mode or Kernel mode Signal. diff --git a/tapset/linux/socket.stp b/tapset/linux/socket.stp index 080f9559c..fa0b18d63 100644 --- a/tapset/linux/socket.stp +++ b/tapset/linux/socket.stp @@ -208,7 +208,7 @@ probe socket.aio_write = kernel.function ("sock_aio_write") name = "socket.aio_write" _sock = _get_sock_addr ($iocb->ki_filp) size = (@defined($iov) ? _get_sock_size ($iov, $nr_segs) - : @defined($count) ?$count : $size) + : @choose_defined($count, $size)) protocol = _sock_prot_num (_sock) family = _sock_fam_num (_sock) state = _sock_state_num (_sock) @@ -275,7 +275,7 @@ probe socket.aio_read = kernel.function ("sock_aio_read") name = "socket.aio_read" _sock = _get_sock_addr ($iocb->ki_filp) size = (@defined($iov) ? _get_sock_size ($iov, $nr_segs) - : @defined($count) ?$count : $size) + : @choose_defined($count, $size)) protocol = _sock_prot_num (_sock) family = _sock_fam_num (_sock) state = _sock_state_num (_sock) diff --git a/tapset/linux/syscalls.stp b/tapset/linux/syscalls.stp index 37f8629ad..121097c21 100644 --- a/tapset/linux/syscalls.stp +++ b/tapset/linux/syscalls.stp @@ -557,7 +557,7 @@ probe syscall.dup2 = kernel.function("sys_dup3").call !, { oldfd = $oldfd newfd = $newfd - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); # Corner case handled by dup2 if ($oldfd == $newfd && flags == 0) next @@ -574,7 +574,7 @@ probe syscall.dup2 = kernel.function("sys_dup3").call !, probe syscall.dup2.return = kernel.function("sys_dup3").return !, kernel.function("sys_dup2").return { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); # Corner case handled by dup2 if ($oldfd == $newfd && flags == 0) next @@ -589,8 +589,8 @@ probe syscall.dup2.return = kernel.function("sys_dup3").return !, probe syscall.epoll_create = kernel.function("sys_epoll_create1").call !, kernel.function("sys_epoll_create").call ? { - size = @defined($size) ? $size : 0; - flags = @defined($flags) ? $flags : 0; + size = @choose_defined($size, 0); + flags = @choose_defined($flags, 0); if (flags == 0) { name = "epoll_create"; argstr = sprint(size); @@ -602,7 +602,7 @@ probe syscall.epoll_create = kernel.function("sys_epoll_create1").call !, probe syscall.epoll_create.return = kernel.function("sys_epoll_create1").return !, kernel.function("sys_epoll_create").return ? { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); name = (flags == 0) ? "epoll_create" : "epoll_create1"; retstr = return_str(1, $return) } @@ -687,7 +687,7 @@ probe syscall.epoll_wait.return = kernel.function("compat_sys_epoll_wait").retur probe syscall.eventfd = kernel.function("sys_eventfd2").call !, kernel.function("sys_eventfd").call ? { - flags = @defined($flags) ? $flags : 0 + flags = @choose_defined($flags, 0) if (flags == 0) { name = "eventfd" argstr = sprint($count) @@ -699,7 +699,7 @@ probe syscall.eventfd = kernel.function("sys_eventfd2").call !, probe syscall.eventfd.return = kernel.function("sys_eventfd2").return !, kernel.function("sys_eventfd").return ? { - flags = @defined($flags) ? $flags : 0 + flags = @choose_defined($flags, 0) name = flags == 0 ? "eventfd" : "eventfd2" retstr = return_str(1, $return) } @@ -716,7 +716,7 @@ probe syscall.execve = kernel.function("do_execve").call name = "execve" filename = kernel_string($filename) # kernel 3.0 changed the pointer's name to __argv - __argv = @defined($__argv) ? $__argv : $argv + __argv = @choose_defined($__argv, $argv) args = __get_argv(__argv, 0) argstr = sprintf("%s %s", filename, __get_argv(__argv, 1)) } @@ -736,7 +736,7 @@ probe syscall.compat_execve = kernel.function("compat_do_execve").call ? name = "compat_execve" filename = kernel_string($filename) # kernel 3.0 changed the pointer's name to __argv - __argv = @defined($__argv) ? $__argv : $argv + __argv = @choose_defined($__argv, $argv) args = __get_compat_argv(__argv, 0) argstr = sprintf("%s %s", filename, __get_compat_argv(__argv, 1)) } @@ -794,10 +794,10 @@ probe syscall.faccessat.return = kernel.function("sys_faccessat").return ? probe syscall.fadvise64 = kernel.function("sys_fadvise64").call ? { name = "fadvise64" - fd = (@defined($fd) ? $fd : 0) - offset = (@defined($offset) ? $offset : 0) - len = (@defined($len) ? $len : 0) - advice = (@defined($advice) ? $advice : 0) + fd = @choose_defined($fd, 0) + offset = @choose_defined($offset, 0) + len = @choose_defined($len, 0) + advice = @choose_defined($advice, 0) argstr = sprintf("%d, %d, %d, %s", $fd, $offset, $len, _fadvice_advice_str($advice)) } probe syscall.fadvise64.return = kernel.function("sys_fadvise64").return ? @@ -812,10 +812,10 @@ probe syscall.fadvise64.return = kernel.function("sys_fadvise64").return ? probe syscall.fadvise64_64 = kernel.function("sys_fadvise64_64").call ? { name = "fadvise64_64" - fd = (@defined($fd) ? $fd : 0) - offset = (@defined($offset) ? $offset : 0) - len = (@defined($len) ? $len : 0) - advice = (@defined($advice) ? $advice : 0) + fd = @choose_defined($fd, 0) + offset = @choose_defined($offset, 0) + len = @choose_defined($len, 0) + advice = @choose_defined($advice, 0) argstr = sprintf("%d, %d, %d, %s", $fd, $offset, $len, _fadvice_advice_str($advice)) } probe syscall.fadvise64_64.return = kernel.function("sys_fadvise64_64").return ? @@ -1620,12 +1620,12 @@ probe syscall.getresgid = kernel.function("sys_getresgid16").call ?, kernel.function("sys_getresgid").call { name = "getresgid" - rgid_uaddr = @defined($rgidp) ? $rgidp : $rgid - egid_uaddr = @defined($egidp) ? $egidp : $egid - sgid_uaddr = @defined($sgidp) ? $sgidp : $sgid - argstr = sprintf("%p, %p, %p", (@defined($rgidp) ? $rgidp : $rgid), - (@defined($egidp) ? $egidp : $egid), - (@defined($sgidp) ? $sgidp : $sgid)) + rgid_uaddr = @choose_defined($rgidp, $rgid) + egid_uaddr = @choose_defined($egidp, $egid) + sgid_uaddr = @choose_defined($sgidp, $sgid) + argstr = sprintf("%p, %p, %p", @choose_defined($rgidp, $rgid), + @choose_defined($egidp, $egid), + @choose_defined($sgidp, $sgid)) } probe syscall.getresgid.return = kernel.function("sys_getresgid16").return ?, kernel.function("sys_getresgid").return @@ -1642,12 +1642,12 @@ probe syscall.getresuid = kernel.function("sys_getresuid16").call ?, kernel.function("sys_getresuid").call { name = "getresuid" - ruid_uaddr = @defined($ruidp) ? $ruidp : $ruid - euid_uaddr = @defined($euidp) ? $euidp : $euid - suid_uaddr = @defined($suidp) ? $suidp : $suid - argstr = sprintf("%p, %p, %p", (@defined($ruidp) ? $ruidp : $ruid), - (@defined($euidp) ? $euidp : $euid), - (@defined($suidp) ? $suidp : $suid)) + ruid_uaddr = @choose_defined($ruidp, $ruid) + euid_uaddr = @choose_defined($euidp, $euid) + suid_uaddr = @choose_defined($suidp, $suid) + argstr = sprintf("%p, %p, %p", @choose_defined($ruidp, $ruid), + @choose_defined($euidp, $euid), + @choose_defined($suidp, $suid)) } probe syscall.getresuid.return = kernel.function("sys_getresuid16").return ?, kernel.function("sys_getresuid").return @@ -1821,7 +1821,7 @@ probe syscall.getuid.return = kernel.function("sys_getuid16").return ?, probe syscall.getxattr = kernel.function("sys_getxattr").call { name = "getxattr" - path = user_string(@defined($pathname) ? $pathname : $path) + path = user_string(@choose_defined($pathname, $path)) # 'name2' should have been 'name_str'. Deprecate the old name. %(systemtap_v <= "1.4" %? name2 = user_string($name) @@ -1830,7 +1830,7 @@ probe syscall.getxattr = kernel.function("sys_getxattr").call value_uaddr = $value size = $size argstr = sprintf("%s, %s, %p, %d", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), user_string_quoted($name), $value, $size) } @@ -1868,10 +1868,10 @@ probe syscall.inotify_add_watch = kernel.function("sys_inotify_add_watch").call name = "inotify_add_watch" fd = $fd mask = $mask - path_uaddr = (@defined($pathname) ? $pathname : $path) - path = user_string(@defined($pathname) ? $pathname : $path) + path_uaddr = @choose_defined($pathname, $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%d, %s, %s", $fd, - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), _inotify_watch_mask_str($mask)) } @@ -1888,7 +1888,7 @@ probe syscall.inotify_add_watch.return = kernel.function("sys_inotify_add_watch" probe syscall.inotify_init = kernel.function("sys_inotify_init1").call !, kernel.function("sys_inotify_init").call ? { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); if (flags == 0) { name = "inotify_init" argstr = "" @@ -1900,7 +1900,7 @@ probe syscall.inotify_init = kernel.function("sys_inotify_init1").call !, probe syscall.inotify_init.return = kernel.function("sys_inotify_init1").return !, kernel.function("sys_inotify_init").return ? { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); name = (flags == 0) ? "inotify_init" : "inotify_init1" retstr = return_str(1, $return) } @@ -2228,7 +2228,7 @@ probe syscall.lchown16.return = kernel.function("sys_lchown16").return ? probe syscall.lgetxattr = kernel.function("sys_lgetxattr").call { name = "lgetxattr" - path = user_string(@defined($pathname) ? $pathname : $path) + path = user_string(@choose_defined($pathname, $path)) # 'name2' should have been 'name_str'. Deprecate the old name. %(systemtap_v <= "1.4" %? name2 = user_string($name) @@ -2237,7 +2237,7 @@ probe syscall.lgetxattr = kernel.function("sys_lgetxattr").call value_uaddr = $value size = $size argstr = sprintf("%s, %s, %p, %d", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), user_string_quoted($name), value_uaddr, size) } @@ -2314,10 +2314,10 @@ probe syscall.listxattr = kernel.function("sys_listxattr").call name = "listxattr" list_uaddr = $list size = $size - path_uaddr = (@defined($pathname) ? $pathname : $path) - path = user_string(@defined($pathname) ? $pathname : $path) + path_uaddr = @choose_defined($pathname, $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%s, %p, %d", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), $list, $size) } probe syscall.listxattr.return = kernel.function("sys_listxattr").return @@ -2334,10 +2334,10 @@ probe syscall.llistxattr = kernel.function("sys_llistxattr").call name = "llistxattr" list_uaddr = $list size = $size - path_uaddr = (@defined($pathname) ? $pathname : $path) - path = user_string(@defined($pathname) ? $pathname : $path) + path_uaddr = @choose_defined($pathname, $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%s, %p, %d", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), $list, $size) } probe syscall.llistxattr.return = kernel.function("sys_llistxattr").return @@ -2399,10 +2399,10 @@ probe syscall.lremovexattr = kernel.function("sys_lremovexattr").call name2 = user_string($name) %) name_str = user_string($name) - path_uaddr = (@defined($pathname) ? $pathname : $path) - path = user_string(@defined($pathname) ? $pathname : $path) + path_uaddr = @choose_defined($pathname, $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%s, %s", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), user_string_quoted($name)) } probe syscall.lremovexattr.return = kernel.function("sys_lremovexattr").return @@ -2439,15 +2439,15 @@ probe syscall.lseek.return = kernel.function("sys_lseek").return probe syscall.lsetxattr = kernel.function("sys_lsetxattr").call { name = "lsetxattr" - path_uaddr = (@defined($pathname) ? $pathname : $path) - path = user_string(@defined($pathname) ? $pathname : $path) + path_uaddr = @choose_defined($pathname, $path) + path = user_string(@choose_defined($pathname, $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(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), user_string_quoted($name), value_uaddr, $size, $flags) } diff --git a/tapset/linux/syscalls2.stp b/tapset/linux/syscalls2.stp index 63faae4ee..c12adadd2 100644 --- a/tapset/linux/syscalls2.stp +++ b/tapset/linux/syscalls2.stp @@ -407,9 +407,9 @@ probe syscall.poll = kernel.function("sys_poll").call name = "poll" ufds_uaddr = $ufds nfds = $nfds - timeout = (@defined($timeout_msecs) ? $timeout_msecs : $timeout) + timeout = @choose_defined($timeout_msecs, $timeout) argstr = sprintf("%p, %d, %d", $ufds, $nfds, - (@defined($timeout_msecs) ? $timeout_msecs : $timeout)) + @choose_defined($timeout_msecs, $timeout)) } probe syscall.poll.return = kernel.function("sys_poll").return { @@ -759,9 +759,9 @@ probe syscall.readlinkat = kernel.function("sys_readlinkat").call ? dfd = $dfd buf_uaddr = $buf bufsiz = $bufsiz - path = user_string(@defined($pathname) ? $pathname : $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%s, %s, %p, %d", _dfd_str($dfd), - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), $buf, $bufsiz) } @@ -974,7 +974,7 @@ probe syscall.remap_file_pages = kernel.function("sys_remap_file_pages").call ? name = "remap_file_pages" start = $start size = $size - prot = (@defined($prot) ? $prot : $__prot) + prot = @choose_defined($prot, $__prot) pgoff = $pgoff flags = $flags argstr = sprintf("%p, %p, %p, %p, %p", start, size, prot, @@ -997,9 +997,9 @@ probe syscall.removexattr = kernel.function("sys_removexattr").call name = "removexattr" name_str = user_string($name) - path = user_string(@defined($pathname) ? $pathname : $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%s, %s", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), user_string_quoted($name)) } probe syscall.removexattr.return = kernel.function("sys_removexattr").return @@ -1188,7 +1188,7 @@ probe syscall.rt_sigprocmask = kernel.function("sys32_rt_sigprocmask").call ?, name = "rt_sigprocmask" how = $how how_str = _sigprocmask_how_str($how) - set_uaddr = @defined($set) ? $set : $nset + set_uaddr = @choose_defined($set, $nset) oldset_uaddr = $oset argstr = sprintf("%s, [%s], %p, %d", how_str, _stp_sigset_u(set_uaddr), $oset, $sigsetsize) @@ -1392,7 +1392,7 @@ probe syscall.sched_setaffinity = kernel.function("sys_sched_setaffinity").call { name = "sched_setaffinity" pid = $pid - len = (@defined($len) ? $len : 0) + len = @choose_defined($len, 0) mask_uaddr = $user_mask_ptr argstr = sprintf("%d, %d, %p", $pid, $len, $user_mask_ptr) } @@ -2225,15 +2225,15 @@ probe syscall.setuid.return = kernel.function("sys_setuid16").return ?, probe syscall.setxattr = kernel.function("sys_setxattr").call { name = "setxattr" - path_uaddr = (@defined($pathname) ? $pathname : $path) - path = user_string(@defined($pathname) ? $pathname : $path) + path_uaddr = @choose_defined($pathname, $path) + path = user_string(@choose_defined($pathname, $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(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), user_string_quoted($name), value_uaddr, $size, $flags) } @@ -2447,7 +2447,7 @@ probe syscall.signal.return = kernel.function("sys_signal").return ? probe syscall.signalfd = kernel.function("sys_signalfd4").call !, kernel.function("sys_signalfd").call ? { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); if (flags == 0) { name = "signalfd" argstr = sprintf("%d, %p, %d", $ufd, $user_mask, $sizemask) @@ -2460,14 +2460,14 @@ probe syscall.signalfd = kernel.function("sys_signalfd4").call !, probe syscall.signalfd.return = kernel.function("sys_signalfd4").return !, kernel.function("sys_signalfd").return ? { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); name = (flags == 0) ? "signalfd" : "signalfd4" retstr = return_str(1, $return) } probe syscall.compat_signalfd = kernel.function("compat_sys_signalfd4").call !, kernel.function("compat_sys_signalfd").call ? { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); if (flags == 0) { name = "compat_signalfd" argstr = sprintf("%d, %p, %d", $ufd, $sigmask, $sigsetsize) @@ -2481,7 +2481,7 @@ probe syscall.compat_signalfd.return = kernel.function("compat_sys_signalfd4").return !, kernel.function("compat_sys_signalfd").return ? { - flags = @defined($flags) ? $flags : 0; + flags = @choose_defined($flags, 0); name = (flags == 0) ? "compat_signalfd" : "compat_signalfd4" retstr = return_str(1, $return) } @@ -2512,7 +2512,7 @@ probe syscall.sigprocmask = kernel.function("sys_sigprocmask").call ?, name = "sigprocmask" how = $how how_str = _sigprocmask_how_str($how) - set_uaddr = @defined($set) ? $set : $nset + set_uaddr = @choose_defined($set, $nset) oldset_uaddr = $oset argstr = sprintf("%s, %p, %p", how_str, set_uaddr, $oset) } @@ -2688,9 +2688,9 @@ probe syscall.statfs = kernel.function("compat_sys_statfs").call ?, { name = "statfs" buf_uaddr = $buf - path = user_string(@defined($pathname) ? $pathname : $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%s, %p", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), $buf) } @@ -2713,9 +2713,9 @@ probe syscall.statfs64 = kernel.function("compat_sys_statfs64").call ?, sz = $sz buf_uaddr = $buf - path = user_string(@defined($pathname) ? $pathname : $path) + path = user_string(@choose_defined($pathname, $path)) argstr = sprintf("%s, %d, %p", - user_string_quoted(@defined($pathname) ? $pathname : $path), + user_string_quoted(@choose_defined($pathname, $path)), $sz, $buf) } @@ -3313,8 +3313,8 @@ probe syscall.ustat32 = kernel.function("compat_sys_ustat").call ?, { name = "ustat" dev = $dev - ubuf_uaddr = (@defined($u) ? $u : $u32p) - argstr = sprintf("%d, %p", $dev, (@defined($u) ? $u : $u32p)) + ubuf_uaddr = @choose_defined($u, $u32p) + argstr = sprintf("%d, %p", $dev, @choose_defined($u, $u32p)) } probe syscall.ustat.return = kernel.function("sys_ustat").return ?, @@ -3479,13 +3479,13 @@ probe syscall.compat_vmsplice.return = kernel.function("compat_sys_vmsplice").re probe syscall.wait4 = kernel.function("sys_wait4").call { name = "wait4" - pid = (@defined($upid) ? $upid : $pid) + pid = @choose_defined($upid, $pid) status_uaddr = $stat_addr options = $options & 0xffffffff options_str = _wait4_opt_str(options) rusage_uaddr = $ru argstr = sprintf("%d, %p, %s, %p", - (@defined($upid) ? $upid : $pid), + @choose_defined($upid, $pid), $stat_addr, options_str, $ru) } probe syscall.wait4.return = kernel.function("sys_wait4").return @@ -3512,7 +3512,7 @@ probe syscall.wait4.return = kernel.function("sys_wait4").return probe syscall.waitid = kernel.function("sys_waitid").call { name = "waitid" - pid = (@defined($upid) ? $upid : $pid) + pid = @choose_defined($upid, $pid) which = $which which_str = _waitid_which_str($which) infop_uaddr = $infop @@ -3520,7 +3520,7 @@ probe syscall.waitid = kernel.function("sys_waitid").call options_str = _waitid_opt_str($options) rusage_uaddr = $ru argstr = sprintf("%d, %d, %p, %s, %p", $which, - (@defined($upid) ? $upid : $pid), $infop, + @choose_defined($upid, $pid), $infop, _waitid_opt_str($options), $ru) } probe syscall.waitid.return = kernel.function("sys_waitid").return diff --git a/tapset/linux/task.stp b/tapset/linux/task.stp index 8322a83eb..df4a44a73 100644 --- a/tapset/linux/task.stp +++ b/tapset/linux/task.stp @@ -40,10 +40,9 @@ function task_current:long () %{ /* pure */ */ function task_parent:long(task:long) { - return (@defined(@cast(task, "task_struct", - "kernel")->real_parent) - ? @cast(task, "task_struct", "kernel")->real_parent - : @cast(task, "task_struct", "kernel")->parent) + return @choose_defined( + @cast(task, "task_struct", "kernel")->real_parent, + @cast(task, "task_struct", "kernel")->parent) } /** @@ -256,9 +255,8 @@ function task_nice:long (task:long) %{ /* pure */ */ function task_cpu:long (task:long) { - ti = (@defined(@cast(task, "task_struct", "kernel")->stack) - ? @cast(task, "task_struct", "kernel")->stack - : @cast(task, "task_struct", "kernel")->thread_info); + ti = @choose_defined(@cast(task, "task_struct", "kernel")->stack, + @cast(task, "task_struct", "kernel")->thread_info); return @cast(ti, "thread_info", "kernel")->cpu } diff --git a/tapset/linux/tcp.stp b/tapset/linux/tcp.stp index cf9b4f55a..7737a2c3f 100644 --- a/tapset/linux/tcp.stp +++ b/tapset/linux/tcp.stp @@ -77,11 +77,9 @@ function tcp_ts_get_info_state:long(sock:long) /* return the TCP destination port for a given sock */ function __tcp_sock_dport:long (sock:long) { - return (@defined(@cast(sock, "inet_sock")->inet_dport) - ? @cast(sock, "inet_sock")->inet_dport # kernel >= 2.6.33 - : (@defined(@cast(sock, "inet_sock")->dport) - ? @cast(sock, "inet_sock", "kernel")->dport # kernel >= 2.6.11 - : @cast(sock, "inet_sock", "kernel")->inet->dport)) + return @choose_defined(@cast(sock, "inet_sock")->inet_dport, # kernel >= 2.6.33 + @choose_defined(@cast(sock, "inet_sock", "kernel")->dport, # kernel >= 2.6.11 + @cast(sock, "inet_sock", "kernel")->inet->dport)) } /* returns the TCP header for recent (<2.6.21) kernel */ @@ -159,11 +157,9 @@ function __tcp_skb_dport:long (tcphdr:long){ /* return the TCP source port for a given sock */ function __tcp_sock_sport:long (sock:long) { - return (@defined(@cast(sock, "inet_sock")->inet_sport) - ? @cast(sock, "inet_sock")->inet_sport # kernel >= 2.6.33 - : (@defined(@cast(sock, "inet_sock")->sport) - ? @cast(sock, "inet_sock", "kernel")->sport # kernel >= 2.6.11 - : @cast(sock, "inet_sock", "kernel")->inet->sport)) + return @choose_defined(@cast(sock, "inet_sock")->inet_sport, # kernel >= 2.6.33 + @choose_defined(@cast(sock, "inet_sock", "kernel")->sport, # kernel >= 2.6.11 + @cast(sock, "inet_sock", "kernel")->inet->sport)) } global sockstate[13], sockstate_init_p @@ -686,7 +682,7 @@ probe tcp.ipv6.receive = kernel.function("tcp_v6_rcv")!, module("ipv6").function("tcp_v6_rcv") { name = "tcp.ipv6.receive" - iphdr = __get_skb_iphdr(@defined($skb) ? $skb : kernel_pointer($pskb)) + iphdr = __get_skb_iphdr(@choose_defined($skb, kernel_pointer($pskb))) # If we're here, by definition we're doing AF_INET6, not AF_INET. family = %{ /* pure */ AF_INET6 %} saddr = format_ipaddr(&@cast(iphdr, "ipv6hdr")->saddr, @@ -699,7 +695,7 @@ probe tcp.ipv6.receive = kernel.function("tcp_v6_rcv")!, # Procol ID (ETH_P_*), not an IP protocol ID (IPPROTO_*). protocol = %{ /* pure */ IPPROTO_TCP %} - tcphdr = __get_skb_tcphdr(@defined($skb) ? $skb : kernel_pointer($pskb)) + tcphdr = __get_skb_tcphdr(@choose_defined($skb, kernel_pointer($pskb))) dport = __tcp_skb_dport(tcphdr) sport = __tcp_skb_sport(tcphdr) urg = __tcp_skb_urg(tcphdr) diff --git a/tapset/linux/tcpmib.stp b/tapset/linux/tcpmib.stp index dfc94c3af..dc2a639dc 100644 --- a/tapset/linux/tcpmib.stp +++ b/tapset/linux/tcpmib.stp @@ -296,7 +296,7 @@ function _tcpmib_input_route_type:long (skb:long) probe __tcpmib.OutRsts.tcp_v4_send_reset = kernel.function("tcp_v4_send_reset") { - sk = (@defined($sk) ? $sk : 0) + sk = @choose_defined($sk, 0) op = 1; if ( _is_reset($skb) ) next if (_tcpmib_input_route_type($skb) != _rtn_local() ) diff --git a/tapset/linux/tty.stp b/tapset/linux/tty.stp index 1f67fc03e..582d23814 100644 --- a/tapset/linux/tty.stp +++ b/tapset/linux/tty.stp @@ -24,8 +24,8 @@ probe tty.open = kernel.function("tty_open") inode_state = $inode->i_state inode_flags = $inode->i_flags - file_name = d_name(@defined($filp->f_path->dentry) - ? $filp->f_path->dentry : $filp->f_dentry) + file_name = d_name(@choose_defined($filp->f_path->dentry, + $filp->f_dentry)) file_mode = $filp->f_mode file_flags = $filp->f_flags } @@ -55,8 +55,8 @@ probe tty.release = kernel.function("tty_release") inode_flags = -1 } - file_name = d_name(@defined($filp->f_path->dentry) - ? $filp->f_path->dentry : $filp->f_dentry) + file_name = d_name(@choose_defined($filp->f_path->dentry, + $filp->f_dentry)) file_mode = $filp->f_mode file_flags = $filp->f_flags } @@ -103,8 +103,8 @@ probe tty.resize = kernel.function("tiocswinsz") */ probe tty.ioctl = kernel.function("tty_ioctl") { - name = kernel_string(@defined($file->f_path->dentry->d_iname) - ? $file->f_path->dentry->d_iname : $file->f_dentry->d_iname) + name = kernel_string(@choose_defined($file->f_path->dentry->d_iname, + $file->f_dentry->d_iname)) cmd = $cmd arg = $arg } @@ -160,8 +160,8 @@ probe tty.unregister = kernel.function("tty_unregister_device") */ probe tty.poll = kernel.function("tty_poll") { - file_name = d_name(@defined($filp->f_path->dentry) - ? $filp->f_path->dentry : $filp->f_dentry) + file_name = d_name(@choose_defined($filp->f_path->dentry, + $filp->f_dentry)) wait_key = (@defined($wait->key) ? ($wait ? $wait->key : 0) : 0) } @@ -201,8 +201,8 @@ probe tty.write = kernel.function("n_tty_write") !, buffer = kernel_string($buf) nr = $nr - file_name = d_name(@defined($file->f_path->dentry) - ? $file->f_path->dentry : $file->f_dentry) + file_name = d_name(@choose_defined($file->f_path->dentry, + $file->f_dentry)) driver_name = kernel_string($tty->driver->driver_name) } @@ -218,7 +218,7 @@ probe tty.read = kernel.function("n_tty_read") !, { buffer = kernel_string($buf) nr = $nr - file_name = d_name(@defined($file->f_path->dentry) - ? $file->f_path->dentry : $file->f_dentry) + file_name = d_name(@choose_defined($file->f_path->dentry, + $file->f_dentry)) driver_name = kernel_string($tty->driver->driver_name) } diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp index 6ca330190..f2cbc9291 100644 --- a/tapset/linux/vfs.stp +++ b/tapset/linux/vfs.stp @@ -105,9 +105,8 @@ function __file_maxbytes:long (file:long) function __file_filename:string (file:long) { dentry = file - ? (@defined(@cast(file, "file", "kernel")->f_path->dentry) - ? @cast(file, "file", "kernel")->f_path->dentry - : @cast(file, "file", "kernel")->f_dentry) + ? @choose_defined(@cast(file, "file", "kernel")->f_path->dentry, + @cast(file, "file", "kernel")->f_dentry) : 0 name = dentry? @cast(dentry, "dentry", "kernel")->d_name->name : 0 if (name == 0) @@ -174,7 +173,7 @@ probe generic.fop.aio_read = devname = __find_bdevname(dev, __file_bdev($iocb->ki_filp)) ino = __file_ino($iocb->ki_filp) - pos = (@defined($pos) ? $pos : kernel_pointer($ppos)) + pos = @choose_defined($pos, kernel_pointer($ppos)) buf = $iov->iov_base count = __iov_length($iov,$nr_segs,1,1) /*FIX ME: should be VERIFY_WRITE instead of 1*/ name = "generic_file_aio_read" @@ -215,7 +214,7 @@ probe generic.fop.aio_write = kernel.function("generic_file_aio_write") count = (@defined($iov) ? __iov_length($iov,$nr_segs,1,0) /*FIX ME: should be VERIFY_READ instead of 0*/ : $count) - buf = (@defined($iov->iov_base) ? $iov->iov_base : $buf) + buf = @choose_defined($iov->iov_base, $buf) name = "generic_file_aio_write" argstr = sprintf("%d, %d, %p", count, pos, buf) @@ -988,7 +987,7 @@ probe _vfs.block_prepare_write.return = probe _vfs.block_write_begin = kernel.function("block_write_begin") ? { - file = (@defined($file) ? $file : 0) + file = @choose_defined($file, 0) pos = $pos len = $len flags = $flags @@ -1005,7 +1004,7 @@ probe _vfs.block_write_begin.return = name = "_vfs.block_write_begin" retstr = sprintf("%d", $return) - file = (@defined($file) ? $file : 0) + file = @choose_defined($file, 0) pos = $pos len = $len flags = $flags diff --git a/tapset/linux/x86_64/syscalls.stp b/tapset/linux/x86_64/syscalls.stp index ddc24ea7f..4cd741f9f 100644 --- a/tapset/linux/x86_64/syscalls.stp +++ b/tapset/linux/x86_64/syscalls.stp @@ -26,7 +26,7 @@ probe syscall.arch_prctl.return = kernel.function("sys_arch_prctl").return probe syscall.iopl = kernel.function("sys_iopl") { name = "iopl" - level = (@defined($level) ? $level : $new_iopl) + level = @choose_defined($level, $new_iopl) argstr = sprint(level) } probe syscall.iopl.return = kernel.function("sys_iopl").return -- 2.43.5