cacheflush(2) - Linux man page
Name
cacheflush - flush contents of instruction and/or data cache
Synopsis
#include <asm/cachectl.h>
int cacheflush(char *addr, int nbytes, int cache);
Description
cacheflush() flushes the contents of the indicated cache(s) for the user addresses in the range
addr to (addr+nbytes-1). cache may be one of:
- ICACHE
- Flush the instruction cache.
- DCACHE
- Write back to memory and invalidate the affected valid cache lines.
- BCACHE
- Same as (ICACHE|DCACHE).
Return Value
cacheflush() returns 0 on success or -1 on error. If errors are detected, errno will
indicate the error.
Errors
- EFAULT
- Some or all of the address range addr to (addr+nbytes-1) is not accessible.
- EINVAL
- cache is not one of ICACHE, DCACHE, or BCACHE.
Conforming to
This Linux-specific system call is only available on MIPS-based systems. It should not be used in
programs intended to be portable.
Bugs
The current implementation ignores the addr and nbytes arguments. Therefore, the whole cache is
always flushed.