|
From: <sv...@va...> - 2005-07-25 15:21:49
|
Author: tom
Date: 2005-07-25 16:21:41 +0100 (Mon, 25 Jul 2005)
New Revision: 4250
Log:
Add support for the inotify system calls based on a patch
from John McCutchan <tt...@te...>.
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-07-25 15:04:00 UT=
C (rev 4249)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-07-25 15:21:41 UT=
C (rev 4250)
@@ -92,6 +92,10 @@
DECL_TEMPLATE(linux, sys_set_mempolicy);
DECL_TEMPLATE(linux, sys_get_mempolicy);
=20
+DECL_TEMPLATE(linux, sys_inotify_init);
+DECL_TEMPLATE(linux, sys_inotify_add_watch);
+DECL_TEMPLATE(linux, sys_inotify_rm_watch);
+
#endif // __PRIV_SYSWRAP_LINUX_H
=20
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2005-07-25 15:04:00 UTC (re=
v 4249)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2005-07-25 15:21:41 UTC (re=
v 4250)
@@ -860,6 +860,36 @@
POST_MEM_WRITE( ARG2, VG_ROUNDUP( ARG3, sizeof(UWord) * 8 ) / size=
of(UWord) );
}
=20
+PRE(sys_inotify_init)
+{
+ PRINT("sys_inotify_init ( )");
+ PRE_REG_READ0(long, "inotify_init");
+}
+POST(sys_inotify_init)
+{
+ 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( %d, %p, %x )", ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "inotify_add_watch", int, fd, char *, path, int, =
mask);
+ PRE_MEM_RASCIIZ( "inotify_add_watch(path)", ARG2 );
+}
+
+PRE(sys_inotify_rm_watch)
+{
+ PRINT( "sys_inotify_rm_watch( %d, %x )", ARG1,ARG2);
+ PRE_REG_READ2(long, "inotify_rm_watch", int, fd, int, wd);
+}
+
#undef PRE
#undef POST
=20
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-07-25 15:04:00 UTC=
(rev 4249)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-07-25 15:21:41 UTC=
(rev 4250)
@@ -2277,6 +2277,18 @@
GENX_(__NR_mq_notify, sys_mq_notify), // (mq_open+4)
GENXY(__NR_mq_getsetattr, sys_mq_getsetattr), // (mq_open+5)
GENX_(__NR_sys_kexec_load, sys_ni_syscall), // 283
+// GENXY(__NR_waitid, sys_waitid), // 284
+
+ GENX_(285, sys_ni_syscall), // 285
+// LINX_(__NR_add_key, sys_add_key), // 286
+// LINX_(__NR_request_key, sys_request_key), // 287
+// LINXY(__NR_keyctl, sys_keyctl), // 288
+// LINX_(__NR_ioprio_set, sys_ioprio_set), // 289
+
+// LINX_(__NR_ioprio_get, sys_ioprio_get), // 290
+ LINX_(__NR_inotify_init, sys_inotify_init), // 291
+ LINX_(__NR_inotify_add_watch, sys_inotify_add_watch), // 292
+ LINX_(__NR_inotify_rm_watch, sys_inotify_rm_watch), // 293
};
=20
const UInt ML_(syscall_table_size) =3D=20
|