From 41877d526c4c864aa851bed5d405d6d197c0b39b Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Fri, 19 Mar 2010 23:19:19 +0100 Subject: Support epoll_create1 syscall. * tapset/aux_syscalls.stp (_epoll_create1_flag_str): New helper function. * tapset/syscalls.stp (syscall.epoll_create[.return]): Match epoll_creat1 if available. --- tapset/syscalls.stp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'tapset/syscalls.stp') diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp index 0970df5b..743318b2 100644 --- a/tapset/syscalls.stp +++ b/tapset/syscalls.stp @@ -582,17 +582,29 @@ probe syscall.dup2.return = kernel.function("SyS_dup2").return !, # epoll_create _______________________________________________ # long sys_epoll_create(int size) -probe syscall.epoll_create = kernel.function("SyS_epoll_create").call !, +# SYSCALL_DEFINE1(epoll_create1, int, flags) +probe syscall.epoll_create = kernel.function("SyS_epoll_create1").call !, + kernel.function("sys_epoll_create1").call !, + kernel.function("SyS_epoll_create").call !, kernel.function("sys_epoll_create").call ? { - name = "epoll_create" - size = $size - argstr = sprint($size) + size = @defined($size) ? $size : 0; + flags = @defined($flags) ? $flags : 0; + if (flags == 0) { + name = "epoll_create"; + argstr = sprint(size); + } else { + name = "epoll_create1"; + argstr = _epoll_create1_flag_str(flags); + } } -probe syscall.epoll_create.return = kernel.function("SyS_epoll_create").return !, +probe syscall.epoll_create.return = kernel.function("SyS_epoll_create1").return !, + kernel.function("sys_epoll_create1").return !, + kernel.function("SyS_epoll_create").return !, kernel.function("sys_epoll_create").return ? { - name = "epoll_create" + flags = @defined($flags) ? $flags : 0; + name = (flags == 0) ? "epoll_create" : "epoll_create1"; retstr = returnstr(1) } -- cgit