#include "defs.h" #ifdef HAVE_ASM_CACHECTL_H # include #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 */