Drop the mips-specific syswraps for swapon and swapoff syscalls.
Instead, wrap these syscalls on all the arches.
https://bugs.kde.org/show_bug.cgi?id=368791
309554 Wrap syscall remap_file_pages (216)
331311 Valgrind shows open files in /proc/self/fd that don't work for the process
338803 Handling of dwz debug alt files or cross-CU is broken
+368791 Handle swapon and swapoff syscalls as linux generic
369030 Wrap linux syscall: 171 (setdomainname)
388526 Inconsistent severity in message text: "WARNING: Serious error"
418756 MAP_FIXED_NOREPLACE mmap flag unsupported
DECL_TEMPLATE(linux, sys_finit_module);
DECL_TEMPLATE(linux, sys_delete_module);
+DECL_TEMPLATE(linux, sys_swapon);
+DECL_TEMPLATE(linux, sys_swapoff);
+
// Linux-specific (oprofile-related)
DECL_TEMPLATE(linux, sys_lookup_dcookie); // (*/32/64) L
LINX_(__NR_mount, sys_mount), // 165
LINX_(__NR_umount2, sys_umount), // 166
- // (__NR_swapon, sys_swapon), // 167
- // (__NR_swapoff, sys_swapoff), // 168
+ LINX_(__NR_swapon, sys_swapon), // 167
+ LINX_(__NR_swapoff, sys_swapoff), // 168
// (__NR_reboot, sys_reboot), // 169
GENX_(__NR_sethostname, sys_sethostname), // 170
//zz
GENXY(__NR_readlink, sys_readlink), // 85
//zz // (__NR_uselib, sys_uselib), // 86 */Linux
-//zz // (__NR_swapon, sys_swapon), // 87 */Linux
+ LINX_(__NR_swapon, sys_swapon), // 87 */Linux
//zz // (__NR_reboot, sys_reboot), // 88 */Linux
//zz // (__NR_readdir, old_readdir), // 89 -- superseded
//zz
// PLAXY(__NR_vm86old, sys_vm86old), // 113 __NR_syscall... weird
GENXY(__NR_wait4, sys_wait4), // 114
//zz
-//zz // (__NR_swapoff, sys_swapoff), // 115 */Linux
+ LINX_(__NR_swapoff, sys_swapoff), // 115 */Linux
LINXY(__NR_sysinfo, sys_sysinfo), // 116
// _____(__NR_ipc, sys_ipc), // 117
GENX_(__NR_fsync, sys_fsync), // 118
GENX_(__NR_execve, sys_execve), // 221
PLAX_(__NR_mmap, sys_mmap), // 222
PLAX_(__NR_fadvise64, sys_fadvise64), // 223
- // (__NR_swapon, sys_swapon), // 224
- // (__NR_swapoff, sys_swapoff), // 225
+ LINX_(__NR_swapon, sys_swapon), // 224
+ LINX_(__NR_swapoff, sys_swapoff), // 225
GENXY(__NR_mprotect, sys_mprotect), // 226
GENX_(__NR_msync, sys_msync), // 227
GENX_(__NR_mlock, sys_mlock), // 228
ppoll_post_helper (tid, arrghs, status);
}
+PRE(sys_swapon)
+{
+ PRINT("sys_swapon ( %#lx, %#lx )", ARG1, ARG2);
+ PRE_REG_READ2(long, "swapon", const void *, path, int, flags);
+ PRE_MEM_RASCIIZ( "swapon(path)", ARG1);
+}
+
+PRE(sys_swapoff)
+{
+ PRINT("sys_swapoff ( %#lx )", ARG1);
+ PRE_REG_READ1(long, "swapoff", const void *, path);
+ PRE_MEM_RASCIIZ( "swapoff(path)", ARG1);
+}
/* ---------------------------------------------------------------------
epoll_* wrappers
//.. // (__NR_oldlstat, sys_lstat), // 84
GENXY (__NR_readlink, sys_readlink), // 85
//.. // (__NR_uselib, sys_uselib), // 86
- //.. // (__NR_swapon, sys_swapon), // 87
+ LINX_ (__NR_swapon, sys_swapon), // 87
//.. // (__NR_reboot, sys_reboot), // 88
//.. // (__NR_readdir, old_readdir), // 89
PLAX_ (__NR_mmap, sys_mmap), // 90
//.. GENX_(__NR_idle, sys_ni_syscall), // 112
//.. // (__NR_vm86old, sys_vm86old), // 113
GENXY (__NR_wait4, sys_wait4), // 114
- //.. // (__NR_swapoff, sys_swapoff), // 115
+ LINX_ (__NR_swapoff, sys_swapoff), // 115
LINXY (__NR_sysinfo, sys_sysinfo), // 116
LINXY (__NR_ipc, sys_ipc), // 117
GENX_ (__NR_fsync, sys_fsync), // 118
file, but that requires even more macro magic. */
DECL_TEMPLATE (mips_linux, sys_set_thread_area);
-DECL_TEMPLATE (mips_linux, sys_swapon);
-DECL_TEMPLATE (mips_linux, sys_swapoff);
DECL_TEMPLATE (mips_linux, sys_sethostname);
DECL_TEMPLATE (mips_linux, sys_reboot);
DECL_TEMPLATE (mips_linux, sys_cacheflush);
*flags |= SfMayBlock;
}
-PRE(sys_swapon)
-{
- PRINT("sys_swapon ( %#" FMT_REGWORD "x, %#" FMT_REGWORD "x )", ARG1, ARG2);
- PRE_REG_READ2(long, "swapon", const void *, path, int, flags);
-}
-
-PRE(sys_swapoff)
-{
- PRINT("sys_swapoff ( %#" FMT_REGWORD "x )", ARG1);
- PRE_REG_READ1(long, "swapoff", const void *, path);
-}
-
/* Very much MIPS specific */
PRE(sys_cacheflush)
{
LINX_ (__NR_mount, sys_mount),
LINX_ (__NR_mount_setattr, sys_mount_setattr),
LINX_ (__NR_umount2, sys_umount),
- PLAX_ (__NR_swapon, sys_swapon),
- PLAX_ (__NR_swapoff, sys_swapoff),
+ LINX_ (__NR_swapon, sys_swapon),
+ LINX_ (__NR_swapoff, sys_swapoff),
PLAX_ (__NR_reboot, sys_reboot),
PLAX_ (__NR_sethostname, sys_sethostname),
LINX_ (__NR_setdomainname, sys_setdomainname),
DECL_TEMPLATE (mips_linux, sys_unshare);
DECL_TEMPLATE (mips_linux, sys_reboot);
DECL_TEMPLATE (mips_linux, sys_sethostname);
-DECL_TEMPLATE (mips_linux, sys_swapon);
-DECL_TEMPLATE (mips_linux, sys_swapoff);
PRE(sys_mmap2)
{
PRE_REG_READ2 (long, "sethostname", const void *, name, int, len);
}
-PRE(sys_swapon)
-{
- PRINT("sys_swapon ( %#lx, %#lx )", ARG1, ARG2);
- PRE_REG_READ2(long, "swapon", const void *, path, int, flags);
-}
-
-PRE(sys_swapoff)
-{
- PRINT("sys_swapoff ( %#lx )", ARG1);
- PRE_REG_READ1(long, "swapoff", const void *, path);
-}
-
#undef PRE
#undef POST
GENX_ (__NR_execve, sys_execve),
PLAX_ (__NR_mmap2, sys_mmap2),
LINX_ (__NR_fadvise64_64, sys_fadvise64_64),
- PLAX_ (__NR_swapon, sys_swapon),
- PLAX_ (__NR_swapoff, sys_swapoff),
+ LINX_ (__NR_swapon, sys_swapon),
+ LINX_ (__NR_swapoff, sys_swapoff),
GENXY (__NR_mprotect, sys_mprotect),
GENX_ (__NR_msync, sys_msync),
GENX_ (__NR_mlock, sys_mlock),
//..
GENXY(__NR_readlink, sys_readlink), // 85
//.. // (__NR_uselib, sys_uselib), // 86 */Linux
-//.. // (__NR_swapon, sys_swapon), // 87 */Linux
+ LINX_(__NR_swapon, sys_swapon), // 87 */Linux
//.. // (__NR_reboot, sys_reboot), // 88 */Linux
//.. // (__NR_readdir, old_readdir), // 89 -- superseded
//.. // (__NR_vm86old, sys_vm86old), // 113 x86/Linux-only
GENXY(__NR_wait4, sys_wait4), // 114
//..
-//.. // (__NR_swapoff, sys_swapoff), // 115 */Linux
+ LINX_(__NR_swapoff, sys_swapoff), // 115 */Linux
LINXY(__NR_sysinfo, sys_sysinfo), // 116
LINXY(__NR_ipc, sys_ipc), // 117
GENX_(__NR_fsync, sys_fsync), // 118
GENXY(__NR_readlink, sys_readlink), // 85
// _____(__NR_uselib, sys_uselib), // 86
-// _____(__NR_swapon, sys_swapon), // 87
+ LINX_(__NR_swapon, sys_swapon), // 87
// _____(__NR_reboot, sys_reboot), // 88
// _____(__NR_readdir, sys_readdir), // 89
// _____(__NR_vm86, sys_vm86), // 113
GENXY(__NR_wait4, sys_wait4), // 114
-// _____(__NR_swapoff, sys_swapoff), // 115
+ LINX_(__NR_swapoff, sys_swapoff), // 115
LINXY(__NR_sysinfo, sys_sysinfo), // 116
LINXY(__NR_ipc, sys_ipc), // 117
GENX_(__NR_fsync, sys_fsync), // 118
GENX_(__NR_execve, sys_execve), /* 221 */
PLAX_(__NR_mmap, sys_mmap), /* 222 */
GENX_(__NR_fadvise64, sys_ni_syscall), /* 223 */
+ LINX_(__NR_swapon, sys_swapon), /* 224 */
+ LINX_(__NR_swapoff, sys_swapoff), /* 225 */
GENXY(__NR_mprotect, sys_mprotect), /* 226 */
GENX_(__NR_msync, sys_msync), /* 227 */
GENX_(__NR_mlock, sys_mlock), /* 228 */
GENXY(__NR_readlink, sys_readlink), // 85
// ?????(__NR_uselib, ), // 86
-// ?????(__NR_swapon, ), // 87
+ LINX_(__NR_swapon, sys_swapon), // 87
// ?????(__NR_reboot, ), // 88
GENX_(89, sys_ni_syscall), /* unimplemented (by the kernel) */ // 89
GENX_(113, sys_ni_syscall), /* unimplemented (by the kernel) */ // 113
GENXY(__NR_wait4, sys_wait4), // 114
-// ?????(__NR_swapoff, ), // 115
+ LINX_(__NR_swapoff, sys_swapoff), // 115
LINXY(__NR_sysinfo, sys_sysinfo), // 116
LINXY(__NR_ipc, sys_ipc), // 117
GENX_(__NR_fsync, sys_fsync), // 118
//zz
GENXY(__NR_readlink, sys_readlink), // 85
//zz // (__NR_uselib, sys_uselib), // 86 */Linux
-//zz // (__NR_swapon, sys_swapon), // 87 */Linux
+ LINX_(__NR_swapon, sys_swapon), // 87 */Linux
//zz // (__NR_reboot, sys_reboot), // 88 */Linux
//zz // (__NR_readdir, old_readdir), // 89 -- superseded
//zz
PLAXY(__NR_vm86old, sys_vm86old), // 113 x86/Linux-only
GENXY(__NR_wait4, sys_wait4), // 114
//zz
-//zz // (__NR_swapoff, sys_swapoff), // 115 */Linux
+ LINX_(__NR_swapoff, sys_swapoff), // 115 */Linux
LINXY(__NR_sysinfo, sys_sysinfo), // 116
LINXY(__NR_ipc, sys_ipc), // 117
GENX_(__NR_fsync, sys_fsync), // 118