]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add support for the syncfs system call.
authorTom Hughes <tom@compton.nu>
Thu, 7 May 2015 18:54:31 +0000 (18:54 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 7 May 2015 18:54:31 +0000 (18:54 +0000)
Based on patch from j@eckel.me on BZ#347389.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15191

coregrind/m_syswrap/priv_syswrap-linux.h
coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-arm-linux.c
coregrind/m_syswrap/syswrap-arm64-linux.c
coregrind/m_syswrap/syswrap-linux.c
coregrind/m_syswrap/syswrap-mips32-linux.c
coregrind/m_syswrap/syswrap-mips64-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-ppc64-linux.c
coregrind/m_syswrap/syswrap-s390x-linux.c
coregrind/m_syswrap/syswrap-x86-linux.c

index d0939745c8fcbf83c76aabbf21df6d2a617563a6..6552dca82c17a5ffed5fe868ebf22208d15e1ebf 100644 (file)
@@ -287,6 +287,8 @@ DECL_TEMPLATE(linux, sys_fanotify_mark);
 DECL_TEMPLATE(linux, sys_getrandom);
 DECL_TEMPLATE(linux, sys_memfd_create);
 
+DECL_TEMPLATE(linux, sys_syncfs);
+
 /* ---------------------------------------------------------------------
    Wrappers for sockets and ipc-ery.  These are split into standalone
    procedures because x86-linux hides them inside multiplexors
index 62f7ee60116b495c7db329d8b2d7e773006562dd..de3288e5216006021b3f728f5dc9405ef1d902de 100644 (file)
@@ -1062,7 +1062,7 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 304
 
    LINXY(__NR_clock_adjtime,     sys_clock_adjtime),    // 305
-//   LINX_(__NR_syncfs,            sys_ni_syscall),       // 306
+   LINX_(__NR_syncfs,            sys_syncfs),           // 306
    LINXY(__NR_sendmmsg,          sys_sendmmsg),         // 307
 //   LINX_(__NR_setns,             sys_ni_syscall),       // 308
    LINXY(__NR_getcpu,            sys_getcpu),           // 309
index dc8714cda65e3fb7104ee53e40f427dc57a08d01..f8f56f5ff79d7a7d5f2611f94b4d543fb055f543 100644 (file)
@@ -1212,6 +1212,7 @@ static SyscallTableEntry syscall_main_table[] = {
    LINXY(__NR_name_to_handle_at, sys_name_to_handle_at),// 370
    LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 371
    LINXY(__NR_clock_adjtime,     sys_clock_adjtime),    // 372
+   LINX_(__NR_syncfs,            sys_syncfs),           // 373
    LINXY(__NR_sendmmsg,          sys_sendmmsg),         // 374
    LINXY(__NR_getrandom,         sys_getrandom),        // 384
    LINXY(__NR_memfd_create,      sys_memfd_create)      // 385
index 2f35e5103efa87708f3683d9e2b206c802ac5706..7551e8ae059962dbec04e3bc2845c808a2ef695a 100644 (file)
@@ -1042,6 +1042,8 @@ static SyscallTableEntry syscall_main_table[] = {
 
    GENXY(__NR_wait4,             sys_wait4),             // 260
 
+   LINX_(__NR_syncfs,            sys_syncfs),            // 267
+
    LINXY(__NR_sendmmsg,          sys_sendmmsg),          // 269
    LINXY(__NR_process_vm_readv,  sys_process_vm_readv),  // 270
    LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 271
index f15c909e47807eff27887930033fe1a87c8a1544..09c247cdbd26c01a6d3a3926322a0fbd9d6d3c97 100644 (file)
@@ -3064,6 +3064,13 @@ POST(sys_memfd_create)
    }
 }
 
+PRE(sys_syncfs)
+{
+   *flags |= SfMayBlock;
+   PRINT("sys_syncfs ( %ld )", ARG1);
+   PRE_REG_READ1(long, "syncfs", unsigned int, fd);
+}
+
 /* ---------------------------------------------------------------------
    utime wrapper
    ------------------------------------------------------------------ */
index 1b4c5bccd535bfdf5aed5d1a020a197d1c17d517..7a715766cb109a8904aa1595292af7df4377f4d6 100644 (file)
@@ -1112,6 +1112,7 @@ static SyscallTableEntry syscall_main_table[] = {
    LINXY (__NR_prlimit64,              sys_prlimit64),               // 338
    //..
    LINXY (__NR_clock_adjtime,          sys_clock_adjtime),           // 341
+   LINX_ (__NR_syncfs,                 sys_syncfs),                  // 342
    //..
    LINXY (__NR_process_vm_readv,       sys_process_vm_readv),        // 345
    LINX_ (__NR_process_vm_writev,      sys_process_vm_writev),       // 346
index d35664597ee820ceb28ba84ee5ac0da9010643b3..3a5e979609a8c12822e2b4491354abe60246c13e 100644 (file)
@@ -909,7 +909,8 @@ static SyscallTableEntry syscall_main_table[] = {
    LINXY (__NR_process_vm_readv, sys_process_vm_readv),
    LINX_ (__NR_process_vm_writev, sys_process_vm_writev),
    LINXY(__NR_getrandom, sys_getrandom),
-   LINXY(__NR_memfd_create, sys_memfd_create)
+   LINXY(__NR_memfd_create, sys_memfd_create),
+   LINX_(__NR_syncfs, sys_syncfs)
 };
 
 SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
index 1f5d7f6c3ae89499219e5cb1ae14ea5b84dda0bd..9c9937bdd430c85194220ad8b5d31c6a59926118 100644 (file)
@@ -1253,7 +1253,7 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_accept4,           sys_accept4),          // 344
 
    LINX_(__NR_clock_adjtime,     sys_clock_adjtime),    // 347
-
+   LINX_(__NR_syncfs,            sys_syncfs),           // 348
    LINXY(__NR_sendmmsg,          sys_sendmmsg),         // 349
 
    LINXY(__NR_process_vm_readv,  sys_process_vm_readv), // 351
index 6f3c1f7c8cc0d4642393eb589d6383ccf320d320..e2432fd7c8d0475ba1035e9133681402876f14e4 100644 (file)
@@ -1155,7 +1155,7 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_accept4,           sys_accept4),          // 344
 
    LINXY(__NR_clock_adjtime,     sys_clock_adjtime),    // 347
-
+   LINX_(__NR_syncfs,            sys_syncfs),           // 348
    LINXY(__NR_sendmmsg,          sys_sendmmsg),         // 349
 
    LINXY(__NR_process_vm_readv,  sys_process_vm_readv), // 351
index 8e0afa040bc4c15d5abd1cb743663a9cc5377bc0..db374f4a14e7e126a7ef2514f9d916ad20add230 100644 (file)
@@ -1035,7 +1035,7 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_name_to_handle_at, sys_name_to_handle_at),              // 335
    LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),              // 336
    LINXY(__NR_clock_adjtime, sys_clock_adjtime),                      // 337
-// ?????(__NR_syncfs, ),                                              // 338
+   LINX_(__NR_syncfs, sys_syncfs),                                    // 338
 // ?????(__NR_setns, ),                                               // 339
 
    LINXY(__NR_process_vm_readv, sys_process_vm_readv),                // 340
index 0f80d4a61ec8af7dc4e22ef56b7caeba37f74268..e08af76ff36cee5ed94ec909c3eaaf82929a401f 100644 (file)
@@ -1805,7 +1805,7 @@ static SyscallTableEntry syscall_table[] = {
    LINXY(__NR_name_to_handle_at, sys_name_to_handle_at),// 341
    LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 342
    LINXY(__NR_clock_adjtime,     sys_clock_adjtime),    // 343
-//   LINX_(__NR_syncfs,            sys_ni_syscall),       // 344
+   LINX_(__NR_syncfs,            sys_syncfs),           // 344
 
    LINXY(__NR_sendmmsg,          sys_sendmmsg),         // 345
 //   LINX_(__NR_setns,             sys_ni_syscall),       // 346