Difference between revisions of "Cacheflush Syscall"
From LinuxMIPS
(→See also) |
(→See also) |
||
| Line 31: | Line 31: | ||
== See also == | == See also == | ||
| − | * [[Cachectl Syscall]] [[syscall]] | + | * [[Cachectl Syscall]] |
| + | * [[syscall]] | ||
Latest revision as of 08:07, 11 September 2012
[edit] NAME
cacheflush - flush contents of instruction and/or data cache
[edit] SYNOPSIS
#include <asm/cachectl.h>
int cacheflush(char *addr, int nbytes, int cache);
[edit] DESCRIPTION
cacheflush flushes contents of indicated cache(s) for 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).
[edit] RETURN VALUE
cacheflush returns 0 on success or -1 on error. If errors are detected, errno will indicate the error.
[edit] ERRORS
- EINVAL
- cache parameter is not one of ICACHE, DCACHE, or BCACHE.
- EFAULT
- Some or all of the address range addr to (addr+nbytes-1) is not accessible.
[edit] BUGS
The current implementation ignores the addr and nbytes parameters. Therefore always the whole cache is flushed.
[edit] NOTE
This system call is only available on MIPS based systems. It should not be used in programs intended to be portable.