]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Handle fallocate() on 64-bit platforms. Fixes bug 185794.
authorNicholas Nethercote <njn@valgrind.org>
Wed, 15 Jul 2009 03:08:35 +0000 (03:08 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Wed, 15 Jul 2009 03:08:35 +0000 (03:08 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10456

coregrind/m_syswrap/priv_syswrap-linux.h
coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-ppc64-linux.c
coregrind/m_syswrap/syswrap-x86-linux.c

index 113ed88be71cf92b292e1fe0ebec13e8c6c2e66a..fed3ba6e191bcfbed5cb3af237fcf9e4cabbcac8 100644 (file)
@@ -92,6 +92,8 @@ DECL_TEMPLATE(linux, sys_epoll_pwait);
 DECL_TEMPLATE(linux, sys_eventfd);
 DECL_TEMPLATE(linux, sys_eventfd2);
 
+DECL_TEMPLATE(linux, sys_fallocate);
+
 DECL_TEMPLATE(linux, sys_gettid);
 DECL_TEMPLATE(linux, sys_set_tid_address);
 DECL_TEMPLATE(linux, sys_tkill);
index a7f13592403f1473669dfcb052bab793033154dc..0f1a6ae3b471ec95985e9de337b7c8560b3adfec 100644 (file)
@@ -1359,7 +1359,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    LINXY(__NR_timerfd_create,    sys_timerfd_create),   // 283
    LINX_(__NR_eventfd,           sys_eventfd),          // 284
 
-//   LINX_(__NR_fallocate,        sys_ni_syscall),        // 285
+   LINX_(__NR_fallocate,         sys_fallocate),        // 285
    LINXY(__NR_timerfd_settime,   sys_timerfd_settime),  // 286
    LINXY(__NR_timerfd_gettime,   sys_timerfd_gettime),  // 287
    //   (__NR_paccept,           sys_ni_syscall)        // 288
index 0cdce9a6ea78ab79b9d83bfe1d0faa9466bf3260..a02ad8d461c6a201cb7aa4f2065d5dc29cdec0bb 100644 (file)
@@ -1146,6 +1146,16 @@ POST(sys_eventfd2)
    }
 }
 
+// 64-bit version.
+PRE(sys_fallocate)
+{
+   *flags |= SfMayBlock;
+   PRINT("sys_fallocate ( %ld, %ld, %lld, %lld )",
+         ARG1, ARG2, (Long)ARG3, (Long)ARG4);
+   PRE_REG_READ4(long, "fallocate",
+                 int, fd, int, mode, vki_loff_t, offset, vki_loff_t, len);
+}
+
 /* ---------------------------------------------------------------------
    tid-related wrappers
    ------------------------------------------------------------------ */
index f2498bc418cff7481fa12ef72ab86e698fcf51f0..a9e709547a2d44b942ce38b344ebc3dc5f2a10ad 100644 (file)
@@ -1857,7 +1857,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    LINXY(__NR_timerfd_create,    sys_timerfd_create),    // 306
    LINX_(__NR_eventfd,           sys_eventfd),           // 307
 //   LINX_(__NR_sync_file_range2,   sys_ni_syscall),       // 308
-//   LINX_(__NR_fallocate,        sys_ni_syscall),         // 309
+//   LINX_(__NR_fallocate,         sys_fallocate),         // 309
 //   LINXY(__NR_subpage_prot,       sys_ni_syscall),       // 310
    LINXY(__NR_timerfd_settime,   sys_timerfd_settime),  // 311
    LINXY(__NR_timerfd_gettime,   sys_timerfd_gettime),  // 312
index 257d1826a2a929a6ff2dcd74f718fb2d959f870f..1ce4f64bbe6f9d901c47148804a1f188a3945a1d 100644 (file)
@@ -1497,7 +1497,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    LINXY(__NR_timerfd_create,    sys_timerfd_create),    // 306
    LINX_(__NR_eventfd,           sys_eventfd),           // 307
 //   LINX_(__NR_sync_file_range2,   sys_ni_syscall),       // 308
-//   LINX_(__NR_fallocate,        sys_ni_syscall),         // 309
+   LINX_(__NR_fallocate,         sys_fallocate),         // 309
 //   LINXY(__NR_subpage_prot,       sys_ni_syscall),       // 310
    LINXY(__NR_timerfd_settime,   sys_timerfd_settime),  // 311
    LINXY(__NR_timerfd_gettime,   sys_timerfd_gettime),  // 312
index 7d5d67443cfd31f3644a3544e0e7f8f8a2a03e6b..60a052cd9282ea43f93fb243ece7519a36056951 100644 (file)
@@ -2234,7 +2234,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    LINXY(__NR_signalfd,          sys_signalfd),         // 321
    LINXY(__NR_timerfd_create,    sys_timerfd_create),   // 322
    LINX_(__NR_eventfd,           sys_eventfd),          // 323
-//   LINX_(__NR_fallocate,        sys_ni_syscall),        // 324
+   //LINX_(__NR_fallocate,         sys_fallocate),        // 324
 
    LINXY(__NR_timerfd_settime,   sys_timerfd_settime),  // 325
    LINXY(__NR_timerfd_gettime,   sys_timerfd_gettime),  // 326