add support for mincore syscall, patch by Tom Hughes
CCMAIL: 69783-done@bugs.kde.org


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2161 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_syscalls.c b/coregrind/vg_syscalls.c
index 30dac61..0e4de99 100644
--- a/coregrind/vg_syscalls.c
+++ b/coregrind/vg_syscalls.c
@@ -3634,6 +3634,20 @@
    munmap_segment( arg1, arg2 );
 }
 
+PRE(mincore)
+{
+   /* int mincore(void *start, size_t length, unsigned char *vec); */
+   MAYBE_PRINTF("mincore ( %p, %d, %p )\n", arg1,arg2,arg3);
+   SYSCALL_TRACK(pre_mem_write, tid, "mincore(vec)",
+                 arg3, (arg2 + 4096 - 1) / 4096);
+}
+
+POST(mincore)
+{
+   if (!VG_(is_kerror)(res))
+      VG_TRACK( post_mem_write, arg3, (arg2 + 4096 - 1) / 4096 );  
+}
+
 PRE(nanosleep)
 {
          /* int nanosleep(const struct timespec *req, struct timespec *rem); */
@@ -5020,6 +5034,7 @@
    SYSB_(mkdir,			True),
    SYSBA(mprotect,		False),
    SYSBA(munmap,		False),
+   SYSBA(mincore,		False),
    SYSBA(nanosleep,		True),
    SYSB_(_newselect,		True),
    SYSBA(open,			True),