]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge r7324 (Add support for the sync_file_range system call. (Russell
authorJulian Seward <jseward@acm.org>
Wed, 14 May 2008 12:21:29 +0000 (12:21 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 14 May 2008 12:21:29 +0000 (12:21 +0000)
Sears, Tom Hughes))

git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_3_BRANCH@8076

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

index 9972be84318af5871e1f28cebf1341cbc5a15324..c5edfeaca6ecc44633fd1c63e5b8fedc89cd7f98 100644 (file)
@@ -220,6 +220,9 @@ DECL_TEMPLATE(linux, sys_rt_sigtimedwait);
 DECL_TEMPLATE(linux, sys_rt_sigqueueinfo);
 DECL_TEMPLATE(linux, sys_rt_sigsuspend);
 
+// Linux-specific?
+DECL_TEMPLATE(linux, sys_sync_file_range);
+
 /* ---------------------------------------------------------------------
    Wrappers for sockets and ipc-ery.  These are split into standalone
    procedures because x86-linux hides them inside multiplexors
index 1c1d24bddb8f819a694f47ee476483a7237d9f80..f44dfa615912b12c76a19a35369394c36c069e48 100644 (file)
@@ -1371,6 +1371,12 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 //   LINX_(__NR_unshare,                sys_unshare),          // 272
    LINX_(__NR_set_robust_list,  sys_set_robust_list),  // 273
    LINXY(__NR_get_robust_list,  sys_get_robust_list),  // 274
+
+//   LINX_(__NR_splice,            sys_ni_syscall),       // 275
+//   LINX_(__NR_tee,               sys_ni_syscall),       // 276
+   LINX_(__NR_sync_file_range,   sys_sync_file_range),  // 277
+//   LINX_(__NR_vmsplice,          sys_ni_syscall),       // 278
+//   LINX_(__NR_move_pages,        sys_ni_syscall),       // 279
 };
 
 const UInt ML_(syscall_table_size) = 
index c17f0ef3d93330b6fc29237ab858ec86d5d3556f..66de8296ee76ccc2e4e4821de04dfe5c001603d7 100644 (file)
@@ -2118,6 +2118,17 @@ POST(sys_waitid)
       POST_MEM_WRITE( ARG5, sizeof(struct vki_rusage) );
 }
 
+PRE(sys_sync_file_range)
+{
+  PRINT("sys_sync_file_range ( %d, %lld, %lld, %d )",
+       ARG1,ARG2,ARG3,ARG4);
+  PRE_REG_READ4(long, "sync_file_range",
+               int, fd, vki_loff_t, offset, vki_loff_t, nbytes,
+               unsigned int, flags);
+  if (!ML_(fd_allowed)(ARG1, "sync_file_range", tid, False))
+     SET_STATUS_Failure( VKI_EBADF );
+}
+
 /* ---------------------------------------------------------------------
    utime wrapper
    ------------------------------------------------------------------ */
index 49761e2566856cd556272f887c5e231264744fad..6dd5d4b8fb1dabd69735efdf48d9359e6df71ccf 100644 (file)
@@ -2216,6 +2216,14 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 //   LINX_(__NR_unshare,                sys_unshare),          // 310
    LINX_(__NR_set_robust_list,  sys_set_robust_list),  // 311
    LINXY(__NR_get_robust_list,  sys_get_robust_list),  // 312
+//   LINX_(__NR_splice,            sys_ni_syscall),       // 313
+   LINX_(__NR_sync_file_range,   sys_sync_file_range),  // 314
+
+//   LINX_(__NR_tee,               sys_ni_syscall),       // 315
+//   LINX_(__NR_vmsplice,          sys_ni_syscall),       // 316
+//   LINX_(__NR_move_pages,        sys_ni_syscall),       // 317
+//   LINX_(__NR_getcpu,            sys_ni_syscall),       // 318
+//   LINX_(__NR_epoll_pwait,       sys_ni_syscall),       // 319
 
    LINX_(__NR_utimensat,         sys_utimensat),        // 320
 };