diff options
Diffstat (limited to 'tapset')
-rw-r--r-- | tapset/ChangeLog | 9 | ||||
-rw-r--r-- | tapset/socket.stp | 34 |
2 files changed, 37 insertions, 6 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog index 94531989..b3f09767 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,12 @@ +2008-09-23 Zhaolei <zhaolei@cn.fujitsu.com> + + * socket.stp (socket.aio_read/write): Fix version-checking method. + +2008-09-22 Zhaolei <zhaolei@cn.fujitsu.com> + + * socket.stp (socket.aio_read/write): Fix the semantic error + caused by the difference of kernel versions. + 2008-09-18 Mark Wielaard <mjw@redhat.com> * aux_syscalls.stp (_reboot_magic_str): Moved reboot.h include out. diff --git a/tapset/socket.stp b/tapset/socket.stp index 3197a0e2..5c521a33 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.16" %? + size = $size %: - size = _get_sock_size ($iov, $nr_segs) + %( kernel_v < "2.6.19" %? + 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.16" %? + size = $size %: - size = _get_sock_size ($iov, $nr_segs) + %( kernel_v < "2.6.19" %? + size = $count + %: + size = _get_sock_size ($iov, $nr_segs) + %) %) protocol = _sock_prot_num (_sock) family = _sock_fam_num (_sock) |