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.