|
From: <sv...@va...> - 2009-10-27 14:17:41
|
Author: tom
Date: 2009-10-27 14:17:27 +0000 (Tue, 27 Oct 2009)
New Revision: 10909
Log:
Add support for the inotify_init1 system call, based on patches
from Dodji Seketeli and Jakub Jelinek. Fixes #202315.
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
===================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2009-10-27 09:31:39 UTC (rev 10908)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2009-10-27 14:17:27 UTC (rev 10909)
@@ -117,6 +117,7 @@
DECL_TEMPLATE(linux, sys_get_mempolicy);
DECL_TEMPLATE(linux, sys_inotify_init);
+DECL_TEMPLATE(linux, sys_inotify_init1);
DECL_TEMPLATE(linux, sys_inotify_add_watch);
DECL_TEMPLATE(linux, sys_inotify_rm_watch);
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2009-10-27 09:31:39 UTC (rev 10908)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2009-10-27 14:17:27 UTC (rev 10909)
@@ -1375,7 +1375,7 @@
LINXY(__NR_epoll_create1, sys_epoll_create1), // 291
// (__NR_dup3, sys_ni_syscall) // 292
LINXY(__NR_pipe2, sys_pipe2), // 293
- // (__NR_inotify_init1, sys_ni_syscall) // 294
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 294
// (__NR_preadv, sys_ni_syscall) // 295
// (__NR_pwritev, sys_ni_syscall) // 296
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2009-10-27 09:31:39 UTC (rev 10908)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2009-10-27 14:17:27 UTC (rev 10909)
@@ -1526,6 +1526,24 @@
}
}
+PRE(sys_inotify_init1)
+{
+ PRINT("sys_inotify_init ( %ld )", ARG1);
+ PRE_REG_READ1(long, "inotify_init", int, flag);
+}
+
+POST(sys_inotify_init1)
+{
+ vg_assert(SUCCESS);
+ if (!ML_(fd_allowed)(RES, "inotify_init", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ ML_(record_fd_open_nameless) (tid, RES);
+ }
+}
+
PRE(sys_inotify_add_watch)
{
PRINT( "sys_inotify_add_watch ( %ld, %#lx, %lx )", ARG1,ARG2,ARG3);
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2009-10-27 09:31:39 UTC (rev 10908)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2009-10-27 14:17:27 UTC (rev 10909)
@@ -1507,7 +1507,7 @@
LINXY(__NR_epoll_create1, sys_epoll_create1), // 315
// (__NR_dup3, sys_ni_syscall) // 316
LINXY(__NR_pipe2, sys_pipe2), // 317
- // (__NR_inotify_init1, sys_ni_syscall) // 318
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 318
LINXY(__NR_perf_counter_open, sys_perf_counter_open) // 319
// (__NR_preadv, sys_ni_syscall) // 320
// (__NR_pwritev, sys_ni_syscall) // 321
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2009-10-27 09:31:39 UTC (rev 10908)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2009-10-27 14:17:27 UTC (rev 10909)
@@ -2254,7 +2254,7 @@
// (__NR_dup3, sys_ni_syscall) // 330
LINXY(__NR_pipe2, sys_pipe2), // 331
- // (__NR_inotify_init1, sys_ni_syscall) // 332
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 332
// (__NR_preadv, sys_ni_syscall) // 333
// (__NR_pwritev, sys_ni_syscall) // 334
|