Move cacheflush parser to a separate file
* cacheflush.c: New file. * Makefile.am (strace_SOURCES): Add it. * system.c: Move inclusion of <asm/cachectl.h> to cacheflush.c. [M68K, BFIN, SH]: Move to cacheflush.c.
This commit is contained in:
parent
e36c72cbed
commit
95edb8bb71
@ -20,6 +20,7 @@ strace_SOURCES = \
|
||||
aio.c \
|
||||
bjm.c \
|
||||
block.c \
|
||||
cacheflush.c \
|
||||
capability.c \
|
||||
count.c \
|
||||
desc.c \
|
||||
|
94
cacheflush.c
Normal file
94
cacheflush.c
Normal file
@ -0,0 +1,94 @@
|
||||
#include "defs.h"
|
||||
|
||||
#ifdef HAVE_ASM_CACHECTL_H
|
||||
# include <asm/cachectl.h>
|
||||
#endif
|
||||
|
||||
#ifdef M68K
|
||||
# include "xlat/cacheflush_scope.h"
|
||||
|
||||
static const struct xlat cacheflush_flags[] = {
|
||||
#ifdef FLUSH_CACHE_BOTH
|
||||
XLAT(FLUSH_CACHE_BOTH),
|
||||
#endif
|
||||
#ifdef FLUSH_CACHE_DATA
|
||||
XLAT(FLUSH_CACHE_DATA),
|
||||
#endif
|
||||
#ifdef FLUSH_CACHE_INSN
|
||||
XLAT(FLUSH_CACHE_INSN),
|
||||
#endif
|
||||
XLAT_END
|
||||
};
|
||||
|
||||
int
|
||||
sys_cacheflush(struct tcb *tcp)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
/* addr */
|
||||
tprintf("%#lx, ", tcp->u_arg[0]);
|
||||
/* scope */
|
||||
printxval(cacheflush_scope, tcp->u_arg[1], "FLUSH_SCOPE_???");
|
||||
tprints(", ");
|
||||
/* flags */
|
||||
printflags(cacheflush_flags, tcp->u_arg[2], "FLUSH_CACHE_???");
|
||||
/* len */
|
||||
tprintf(", %lu", tcp->u_arg[3]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* M68K */
|
||||
|
||||
#ifdef BFIN
|
||||
static const struct xlat cacheflush_flags[] = {
|
||||
XLAT(ICACHE),
|
||||
XLAT(DCACHE),
|
||||
XLAT(BCACHE),
|
||||
XLAT_END
|
||||
};
|
||||
|
||||
int
|
||||
sys_cacheflush(struct tcb *tcp)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
/* start addr */
|
||||
tprintf("%#lx, ", tcp->u_arg[0]);
|
||||
/* length */
|
||||
tprintf("%ld, ", tcp->u_arg[1]);
|
||||
/* flags */
|
||||
printxval(cacheflush_flags, tcp->u_arg[1], "?CACHE");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* BFIN */
|
||||
|
||||
#ifdef SH
|
||||
static const struct xlat cacheflush_flags[] = {
|
||||
#ifdef CACHEFLUSH_D_INVAL
|
||||
XLAT(CACHEFLUSH_D_INVAL),
|
||||
#endif
|
||||
#ifdef CACHEFLUSH_D_WB
|
||||
XLAT(CACHEFLUSH_D_WB),
|
||||
#endif
|
||||
#ifdef CACHEFLUSH_D_PURGE
|
||||
XLAT(CACHEFLUSH_D_PURGE),
|
||||
#endif
|
||||
#ifdef CACHEFLUSH_I
|
||||
XLAT(CACHEFLUSH_I),
|
||||
#endif
|
||||
XLAT_END
|
||||
};
|
||||
|
||||
int
|
||||
sys_cacheflush(struct tcb *tcp)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
/* addr */
|
||||
tprintf("%#lx, ", tcp->u_arg[0]);
|
||||
/* len */
|
||||
tprintf("%lu, ", tcp->u_arg[1]);
|
||||
/* flags */
|
||||
printflags(cacheflush_flags, tcp->u_arg[2], "CACHEFLUSH_???");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* SH */
|
94
system.c
94
system.c
@ -60,9 +60,6 @@
|
||||
#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number */
|
||||
#define MS_MGC_MSK 0xffff0000 /* Magic flag mask */
|
||||
|
||||
#ifdef HAVE_ASM_CACHECTL_H
|
||||
# include <asm/cachectl.h>
|
||||
#endif
|
||||
#include <linux/personality.h>
|
||||
|
||||
#include "xlat/mount_flags.h"
|
||||
@ -187,94 +184,3 @@ sys_syslog(struct tcb *tcp)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef M68K
|
||||
#include "xlat/cacheflush_scope.h"
|
||||
|
||||
static const struct xlat cacheflush_flags[] = {
|
||||
#ifdef FLUSH_CACHE_BOTH
|
||||
XLAT(FLUSH_CACHE_BOTH),
|
||||
#endif
|
||||
#ifdef FLUSH_CACHE_DATA
|
||||
XLAT(FLUSH_CACHE_DATA),
|
||||
#endif
|
||||
#ifdef FLUSH_CACHE_INSN
|
||||
XLAT(FLUSH_CACHE_INSN),
|
||||
#endif
|
||||
XLAT_END
|
||||
};
|
||||
|
||||
int
|
||||
sys_cacheflush(struct tcb *tcp)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
/* addr */
|
||||
tprintf("%#lx, ", tcp->u_arg[0]);
|
||||
/* scope */
|
||||
printxval(cacheflush_scope, tcp->u_arg[1], "FLUSH_SCOPE_???");
|
||||
tprints(", ");
|
||||
/* flags */
|
||||
printflags(cacheflush_flags, tcp->u_arg[2], "FLUSH_CACHE_???");
|
||||
/* len */
|
||||
tprintf(", %lu", tcp->u_arg[3]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* M68K */
|
||||
|
||||
#ifdef BFIN
|
||||
|
||||
static const struct xlat cacheflush_flags[] = {
|
||||
XLAT(ICACHE),
|
||||
XLAT(DCACHE),
|
||||
XLAT(BCACHE),
|
||||
XLAT_END
|
||||
};
|
||||
|
||||
int
|
||||
sys_cacheflush(struct tcb *tcp)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
/* start addr */
|
||||
tprintf("%#lx, ", tcp->u_arg[0]);
|
||||
/* length */
|
||||
tprintf("%ld, ", tcp->u_arg[1]);
|
||||
/* flags */
|
||||
printxval(cacheflush_flags, tcp->u_arg[1], "?CACHE");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef SH
|
||||
static const struct xlat cacheflush_flags[] = {
|
||||
#ifdef CACHEFLUSH_D_INVAL
|
||||
XLAT(CACHEFLUSH_D_INVAL),
|
||||
#endif
|
||||
#ifdef CACHEFLUSH_D_WB
|
||||
XLAT(CACHEFLUSH_D_WB),
|
||||
#endif
|
||||
#ifdef CACHEFLUSH_D_PURGE
|
||||
XLAT(CACHEFLUSH_D_PURGE),
|
||||
#endif
|
||||
#ifdef CACHEFLUSH_I
|
||||
XLAT(CACHEFLUSH_I),
|
||||
#endif
|
||||
XLAT_END
|
||||
};
|
||||
|
||||
int
|
||||
sys_cacheflush(struct tcb *tcp)
|
||||
{
|
||||
if (entering(tcp)) {
|
||||
/* addr */
|
||||
tprintf("%#lx, ", tcp->u_arg[0]);
|
||||
/* len */
|
||||
tprintf("%lu, ", tcp->u_arg[1]);
|
||||
/* flags */
|
||||
printflags(cacheflush_flags, tcp->u_arg[2], "CACHEFLUSH_???");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* SH */
|
||||
|
Loading…
x
Reference in New Issue
Block a user