}
}
-// 64-bit version.
PRE(sys_fallocate)
{
*flags |= SfMayBlock;
+#if VG_WORDSIZE == 4
+ PRINT("sys_fallocate ( %ld, %ld, %lld, %lld )",
+ ARG1, ARG2, MERGE64(ARG3,ARG4), MERGE64(ARG5,ARG6));
+ PRE_REG_READ6(long, "fallocate",
+ int, fd, int, mode,
+ unsigned, MERGE64_FIRST(offset), unsigned, MERGE64_SECOND(offset),
+ unsigned, MERGE64_FIRST(len), unsigned, MERGE64_SECOND(len));
+#elif VG_WORDSIZE == 8
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);
+#else
+# error Unexpected word size
+#endif
if (!ML_(fd_allowed)(ARG1, "fallocate", tid, False))
SET_STATUS_Failure( VKI_EBADF );
}
LINXY(__NR_timerfd_create, sys_timerfd_create), // 306
LINX_(__NR_eventfd, sys_eventfd), // 307
LINX_(__NR_sync_file_range2, sys_sync_file_range2), // 308
-// LINX_(__NR_fallocate, sys_fallocate), // 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
LINXY(__NR_signalfd, sys_signalfd), // 321
LINXY(__NR_timerfd_create, sys_timerfd_create), // 322
LINX_(__NR_eventfd, sys_eventfd), // 323
- //LINX_(__NR_fallocate, sys_fallocate), // 324
+ LINX_(__NR_fallocate, sys_fallocate), // 324
LINXY(__NR_timerfd_settime, sys_timerfd_settime), // 325
LINXY(__NR_timerfd_gettime, sys_timerfd_gettime), // 326