aboutsummaryrefslogtreecommitdiff
path: root/coregrind/m_syswrap/syswrap-mips64-linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'coregrind/m_syswrap/syswrap-mips64-linux.c')
-rw-r--r--coregrind/m_syswrap/syswrap-mips64-linux.c51
1 files changed, 28 insertions, 23 deletions
diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
index 3a5e97960..12d147dfd 100644
--- a/coregrind/m_syswrap/syswrap-mips64-linux.c
+++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
@@ -7,7 +7,7 @@
This file is part of Valgrind, a dynamic binary instrumentation
framework.
- Copyright (C) 2010-2013 RT-RK
+ Copyright (C) 2010-2015 RT-RK
mips-valgrind@rt-rk.com
This program is free software; you can redistribute it and/or
@@ -185,7 +185,7 @@ static void setup_child ( ThreadArchState *, ThreadArchState *);
static SysRes sys_set_tls ( ThreadId tid, Addr tlsptr);
/* When a client clones, we need to keep track of the new thread. This means:
- 1. allocate a ThreadId+ThreadState+stack for the the thread
+ 1. allocate a ThreadId+ThreadState+stack for the thread
2. initialize the thread's new VCPU state
@@ -320,15 +320,15 @@ DECL_TEMPLATE (mips_linux, sys_pipe);
PRE(sys_tee)
{
- PRINT("sys_tee ( %ld, %ld, %ld, %ld )", ARG1, ARG2, ARG3, ARG4);
+ PRINT("sys_tee ( %ld, %ld, %lu, %#lx )", SARG1, SARG2, ARG3, ARG4);
PRE_REG_READ4(long, "sys_tee", int, fdin, int, fdout, vki_size_t, len,
int, flags);
}
PRE(sys_splice)
{
- PRINT("sys_splice ( %ld, %ld, %ld, %ld, %ld, %ld )", ARG1, ARG2, ARG3,
- ARG4, ARG5, ARG6);
+ PRINT("sys_splice ( %ld, %#lx, %ld, %#lx, %lu, %#lx )",
+ 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);
@@ -336,34 +336,34 @@ PRE(sys_splice)
PRE(sys_vmsplice)
{
- PRINT("sys_vmsplice ( %ld, %ld, %ld, %ld )", ARG1, ARG2, ARG3, ARG4);
+ PRINT("sys_vmsplice ( %ld, %#lx, %lu, %ld )", SARG1, ARG2, ARG3, SARG4);
PRE_REG_READ4(long, "sys_vmsplice", int, fdin, struct vki_iovec *, v,
vki_size_t, len, int, flags);
}
PRE(sys_unshare)
{
- PRINT("sys_unshare ( %ld )", ARG1);
- PRE_REG_READ1(long, "sys_unshare", int, flags);
+ PRINT("sys_unshare ( %lu )", ARG1);
+ PRE_REG_READ1(long, "sys_unshare", unsigned long, flags);
}
PRE(sys_sched_rr_get_interval)
{
- PRINT("sys_sched_rr_get_interval ( %ld, %#lx)", ARG1, ARG2);
- PRE_REG_READ2(long, "sched_rr_get_interval", int, flags,
+ PRINT("sys_sched_rr_get_interval ( %ld, %#lx)", SARG1, ARG2);
+ PRE_REG_READ2(long, "sched_rr_get_interval", vki_pid_t, pid,
struct timespec *, timer);
*flags |= SfMayBlock;
}
PRE(sys_ustat)
{
- PRINT("sys_ustat ( %ld, %#lx)", ARG1, ARG2);
+ PRINT("sys_ustat ( %#lx, %#lx)", ARG1, ARG2);
PRE_REG_READ2(long, "ustat", int, flags, const void *, path);
}
PRE(sys_swapon)
{
- PRINT("sys_swapon ( %#lx, %ld )", ARG1, ARG2);
+ PRINT("sys_swapon ( %#lx, %#lx )", ARG1, ARG2);
PRE_REG_READ2(long, "swapon", const void *, path, int, flags);
}
@@ -375,7 +375,7 @@ PRE(sys_swapoff)
PRE(sys_sysfs)
{
- PRINT("sys_sysfs ( %ld, %ld, %#lx )", ARG1, ARG2, ARG3);
+ PRINT("sys_sysfs ( %ld, %#lx, %#lx )", SARG1, ARG2, ARG3);
PRE_REG_READ3(long, "sysfs", int, flags, int, desc, const void *, path);
}
@@ -384,7 +384,7 @@ PRE(sys_cacheflush)
{
PRINT("cacheflush (%lx, %lx, %lx)", ARG1, ARG2, ARG3);
PRE_REG_READ3(long, "cacheflush", unsigned long, addr,
- int, nbytes, int, cache);
+ unsigned long, nbytes, unsigned int, cache);
VG_ (discard_translations) ((Addr)ARG1, (ULong) ARG2,
"PRE(sys_cacheflush)");
SET_STATUS_Success(0);
@@ -392,28 +392,33 @@ PRE(sys_cacheflush)
PRE(sys_reboot)
{
- PRINT("sys_reboot ( %ld )", ARG1);
- PRE_REG_READ1(int, "reboot", int, flags);
+ PRINT("sys_reboot ( %ld, %ld, %lu, %#lx )", SARG1, ARG2, ARG3, ARG4);
+ // An approximation. ARG4 is only read conditionally by the kernel
+ PRE_REG_READ4(int, "reboot",
+ int, magic1, int, magic2, unsigned int, cmd,
+ void *, arg);
+
*flags |= SfMayBlock;
}
PRE(sys_setdomainname)
{
- PRINT ("sys_setdomainname ( %#lx, %ld )", ARG1, ARG2);
+ PRINT ("sys_setdomainname ( %#lx, %ld )", ARG1, SARG2);
PRE_REG_READ2 (long, "setdomainname", const void *, name, int, len);
}
PRE(sys_sethostname)
{
- PRINT ("sys_sethostname ( %ld, %ld )", ARG1, ARG2);
+ PRINT ("sys_sethostname ( %#lx, %ld )", ARG1, SARG2);
PRE_REG_READ2 (long, "sethostname", const void *, name, int, len);
}
PRE(sys_ptrace)
{
- PRINT("sys_ptrace ( %ld, %ld, %#lx, %#lx )", ARG1, ARG2, ARG3, ARG4);
- PRE_REG_READ4(int, "ptrace", long, request, long, pid, long, addr,
- long, data);
+ PRINT("sys_ptrace ( %ld, %ld, %#lx, %#lx )", SARG1, SARG2, ARG3, ARG4);
+ PRE_REG_READ4(int, "ptrace",
+ long, request, long, pid, unsigned long, addr,
+ unsigned long, data);
switch (ARG1) {
case VKI_PTRACE_PEEKTEXT:
case VKI_PTRACE_PEEKDATA:
@@ -462,8 +467,8 @@ POST(sys_ptrace)
PRE (sys_mmap)
{
SysRes r;
- PRINT("sys_mmap ( %#lx, %llu, %lu, %lu, %lu, %ld )", ARG1, (ULong)ARG2,
- ARG3, ARG4, ARG5, ARG6);
+ PRINT("sys_mmap ( %#lx, %lu, %ld, %ld, %ld, %lu )",
+ ARG1, ARG2, SARG3, SARG4, SARG5, ARG6);
PRE_REG_READ6(long, "mmap", unsigned long, start, vki_size_t, length,
int, prot, int, flags, int, fd, unsigned long, offset);
r = ML_(generic_PRE_sys_mmap)(tid, ARG1, ARG2, ARG3, ARG4, ARG5,