mips: move sysmips parser to a separate file
* 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.
This commit is contained in:
parent
f6eb0d6b27
commit
600e33cd45
@ -53,6 +53,7 @@ strace_SOURCES = \
|
||||
stream.c \
|
||||
syscall.c \
|
||||
sysinfo.c \
|
||||
sysmips.c \
|
||||
system.c \
|
||||
term.c \
|
||||
time.c \
|
||||
|
42
sysmips.c
Normal file
42
sysmips.c
Normal file
@ -0,0 +1,42 @@
|
||||
#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 */
|
40
system.c
40
system.c
@ -72,12 +72,6 @@
|
||||
#ifdef HAVE_ASM_CACHECTL_H
|
||||
# include <asm/cachectl.h>
|
||||
#endif
|
||||
#ifdef HAVE_LINUX_USTNAME_H
|
||||
# include <linux/utsname.h>
|
||||
#endif
|
||||
#ifdef HAVE_ASM_SYSMIPS_H
|
||||
# include <asm/sysmips.h>
|
||||
#endif
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/personality.h>
|
||||
|
||||
@ -576,37 +570,3 @@ sys_sysctl(struct tcb *tcp)
|
||||
free(name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef MIPS
|
||||
|
||||
#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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user