Dmitry V. Levin
600e33cd45
* sysmips.c: New file. * Makefile.am (strace_SOURCES): Add it. * system.c: Fix typo in the check for <linux/utsname.h>. Move inclusions of <linux/utsname.h> and <asm/sysmips.h> to sysmips.c. [MIPS]: Likewise.
43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
#include "defs.h"
|
|
|
|
#ifdef MIPS
|
|
|
|
#ifdef HAVE_LINUX_UTSNAME_H
|
|
# include <linux/utsname.h>
|
|
#endif
|
|
#ifdef HAVE_ASM_SYSMIPS_H
|
|
# include <asm/sysmips.h>
|
|
#endif
|
|
|
|
#ifndef __NEW_UTS_LEN
|
|
# define __NEW_UTS_LEN 64
|
|
#endif
|
|
|
|
#include "xlat/sysmips_operations.h"
|
|
|
|
int sys_sysmips(struct tcb *tcp)
|
|
{
|
|
if (entering(tcp)) {
|
|
printxval(sysmips_operations, tcp->u_arg[0], "???");
|
|
if (!verbose(tcp)) {
|
|
tprintf("%ld, %ld, %ld", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
|
|
} else if (tcp->u_arg[0] == SETNAME) {
|
|
char nodename[__NEW_UTS_LEN + 1];
|
|
if (umovestr(tcp, tcp->u_arg[1], (__NEW_UTS_LEN + 1), nodename) < 0)
|
|
tprintf(", %#lx", tcp->u_arg[1]);
|
|
else
|
|
tprintf(", \"%.*s\"", (int)(__NEW_UTS_LEN + 1), nodename);
|
|
} else if (tcp->u_arg[0] == MIPS_ATOMIC_SET) {
|
|
tprintf(", %#lx, 0x%lx", tcp->u_arg[1], tcp->u_arg[2]);
|
|
} else if (tcp->u_arg[0] == MIPS_FIXADE) {
|
|
tprintf(", 0x%lx", tcp->u_arg[1]);
|
|
} else {
|
|
tprintf("%ld, %ld, %ld", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
#endif /* MIPS */
|