Author: tom
Date: 2008-01-08 16:31:25 +0000 (Tue, 08 Jan 2008)
New Revision: 7324

Log:
Add support for the sync_file_range system call.

Based on patch from Russell Sears <[EMAIL PROTECTED]>.

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-x86-linux.c


Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
===================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h      2008-01-08 16:10:47 UTC 
(rev 7323)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h      2008-01-08 16:31:25 UTC 
(rev 7324)
@@ -220,6 +220,9 @@
 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

Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c     2008-01-08 16:10:47 UTC 
(rev 7323)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c     2008-01-08 16:31:25 UTC 
(rev 7324)
@@ -1371,6 +1371,12 @@
 //   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) = 

Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c   2008-01-08 16:10:47 UTC (rev 
7323)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c   2008-01-08 16:31:25 UTC (rev 
7324)
@@ -2118,6 +2118,17 @@
       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
    ------------------------------------------------------------------ */

Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c       2008-01-08 16:10:47 UTC 
(rev 7323)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c       2008-01-08 16:31:25 UTC 
(rev 7324)
@@ -2216,7 +2216,15 @@
 //   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
 };
 


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Valgrind-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to