]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
mips: hook up splice syscall correctly
authorPetar Jovanovic <mips32r2@gmail.com>
Mon, 5 Aug 2019 16:28:48 +0000 (16:28 +0000)
committerPetar Jovanovic <mips32r2@gmail.com>
Tue, 13 Aug 2019 12:20:38 +0000 (12:20 +0000)
Hook up splice syscall for mips32 and mips64 correctly.
This fixes splice01 and several other tests in the LTP test suite.

coregrind/m_syswrap/syswrap-mips32-linux.c
coregrind/m_syswrap/syswrap-mips64-linux.c

index d9e3a04e2e587b41570f01456665433cb04138c7..7905547d32f34e9e6f5759df65609ba7de99c431 100644 (file)
@@ -1037,6 +1037,8 @@ static SyscallTableEntry syscall_main_table[] = {
    LINXY (__NR_pselect6,               sys_pselect6),                // 301
    LINXY (__NR_ppoll,                  sys_ppoll),                   // 302
    //..
+   LINX_ (__NR_splice,                 sys_splice),                  // 304
+   //..
    LINX_ (__NR_set_robust_list,        sys_set_robust_list),         // 309
    LINXY (__NR_get_robust_list,        sys_get_robust_list),         // 310
    //..
index 9b5c07f15c905c31edf3fe231b4df5df22eec085..0af43a7b7c9788bee5f66ef1be7cd5479cf80e58 100644 (file)
@@ -217,7 +217,6 @@ SysRes sys_set_tls ( ThreadId tid, Addr tlsptr )
 
 DECL_TEMPLATE (mips_linux, sys_set_thread_area);
 DECL_TEMPLATE (mips_linux, sys_tee);
-DECL_TEMPLATE (mips_linux, sys_splice);
 DECL_TEMPLATE (mips_linux, sys_vmsplice);
 DECL_TEMPLATE (mips_linux, sys_ustat);
 DECL_TEMPLATE (mips_linux, sys_sysfs);
@@ -244,16 +243,6 @@ PRE(sys_tee)
                  int, flags);
 }
 
-PRE(sys_splice)
-{
-   PRINT("sys_splice ( %ld, %#" FMT_REGWORD "x, %ld, %#" FMT_REGWORD
-         "x, %" FMT_REGWORD "u, %#" FMT_REGWORD "x )",
-         SARG1, ARG2, SARG3, ARG4, ARG5, ARG6);
-
-   PRE_REG_READ6(long, "sys_splice", int, fdin, vki_loff_t, sizein, int,
-                 fdout, vki_loff_t, sizeout, vki_size_t, len, int, flags);
-}
-
 PRE(sys_vmsplice)
 {
    PRINT("sys_vmsplice ( %ld, %#" FMT_REGWORD "x, %" FMT_REGWORD "u, %ld )",
@@ -805,7 +794,7 @@ static SyscallTableEntry syscall_main_table[] = {
    LINXY (__NR_pselect6, sys_pselect6),
    LINXY (__NR_ppoll, sys_ppoll),
    PLAX_ (__NR_unshare, sys_unshare),
-   PLAX_ (__NR_splice, sys_splice),
+   LINX_ (__NR_splice, sys_splice),
    LINX_ (__NR_sync_file_range, sys_sync_file_range),
    PLAX_ (__NR_tee, sys_tee),
    PLAX_ (__NR_vmsplice, sys_vmsplice),