|
From: <sv...@va...> - 2009-07-15 03:09:02
|
Author: njn
Date: 2009-07-15 04:08:35 +0100 (Wed, 15 Jul 2009)
New Revision: 10456
Log:
Handle fallocate() on 64-bit platforms. Fixes bug 185794.
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-ppc32-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-07-15 02:31:45 UTC (rev 10455)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2009-07-15 03:08:35 UTC (rev 10456)
@@ -92,6 +92,8 @@
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);
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2009-07-15 02:31:45 UTC (rev 10455)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2009-07-15 03:08:35 UTC (rev 10456)
@@ -1359,7 +1359,7 @@
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
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2009-07-15 02:31:45 UTC (rev 10455)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2009-07-15 03:08:35 UTC (rev 10456)
@@ -1146,6 +1146,16 @@
}
}
+// 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
------------------------------------------------------------------ */
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2009-07-15 02:31:45 UTC (rev 10455)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2009-07-15 03:08:35 UTC (rev 10456)
@@ -1857,7 +1857,7 @@
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
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2009-07-15 02:31:45 UTC (rev 10455)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2009-07-15 03:08:35 UTC (rev 10456)
@@ -1497,7 +1497,7 @@
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
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2009-07-15 02:31:45 UTC (rev 10455)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2009-07-15 03:08:35 UTC (rev 10456)
@@ -2234,7 +2234,7 @@
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
|