diff options
author | Zhaolei <zhaolei@cn.fujitsu.com> | 2008-09-22 12:15:11 +0800 |
---|---|---|
committer | Zhaolei <zhaolei@cn.fujitsu.com> | 2008-09-22 12:15:11 +0800 |
commit | 707e14f086aa2b527f1e75aafdf6331356675e0a (patch) | |
tree | 3df30ffac73b516794795130d49ea272be0faa48 /tapset/socket.stp | |
parent | e8ea4501122483436cdeb0352d833ccefeda7d14 (diff) | |
download | systemtap-steved-707e14f086aa2b527f1e75aafdf6331356675e0a.tar.gz systemtap-steved-707e14f086aa2b527f1e75aafdf6331356675e0a.tar.xz systemtap-steved-707e14f086aa2b527f1e75aafdf6331356675e0a.zip |
socket.stp (socket.aio_read/write): Fix the semantic error caused by the difference of kernel versions.
Diffstat (limited to 'tapset/socket.stp')
-rw-r--r-- | tapset/socket.stp | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/tapset/socket.stp b/tapset/socket.stp index 3197a0e2..e15bb481 100644 --- a/tapset/socket.stp +++ b/tapset/socket.stp @@ -214,15 +214,26 @@ probe socket.recvmsg.return = kernel.function ("sock_recvmsg").return * state Socket state value * flags Socket flags value * type Socket type value + * + * 2.6.9~2.6.15: + * static ssize_t sock_aio_write(struct kiocb *iocb, const char __user *ubuf, size_t size, loff_t pos); + * 2.6.16~2.6.18: + * static ssize_t sock_aio_write(struct kiocb *iocb, const char __user *ubuf, size_t count, loff_t pos); + * 2.6.19~2.6.26: + * static ssize_t sock_aio_write(struct kiocb *iocb, const struct iovec *iov, unsigned long nr_segs, loff_t pos); */ probe socket.aio_write = kernel.function ("sock_aio_write") { name = "socket.aio_write" _sock = _get_sock_addr ($iocb->ki_filp) -%( kernel_v < "2.6.19" %? - size = $count +%( kernel_v <= "2.6.15" %? + size = $size %: - size = _get_sock_size ($iov, $nr_segs) + %( kernel_v <= "2.6.18" %? + size = $count + %: + size = _get_sock_size ($iov, $nr_segs) + %) %) protocol = _sock_prot_num (_sock) family = _sock_fam_num (_sock) @@ -281,15 +292,26 @@ probe socket.aio_write.return = kernel.function ("sock_aio_write").return * state Socket state value * flags Socket flags value * type Socket type value + * + * 2.6.9~2.6.15: + * static ssize_t sock_aio_read(struct kiocb *iocb, char __user *ubuf, size_t size, loff_t pos); + * 2.6.16~2.6.18: + * static ssize_t sock_aio_read(struct kiocb *iocb, char __user *ubuf, size_t count, loff_t pos); + * 2.6.19~2.6.26: + * static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov, unsigned long nr_segs, loff_t pos); */ probe socket.aio_read = kernel.function ("sock_aio_read") { name = "socket.aio_read" _sock = _get_sock_addr ($iocb->ki_filp) -%( kernel_v < "2.6.19" %? - size = $count +%( kernel_v <= "2.6.15" %? + size = $size %: - size = _get_sock_size ($iov, $nr_segs) + %( kernel_v <= "2.6.18" %? + size = $count + %: + size = _get_sock_size ($iov, $nr_segs) + %) %) protocol = _sock_prot_num (_sock) family = _sock_fam_num (_sock) |