cacheflush()函数 Unix/Linux
名称
cacheflush - 刷新指令和/或数据高速缓存的内容
内容简介
#includeint cacheflush(char *addr, int nbytes, int cache);
描述
cacheflush() 刷新指定的缓存(S)用户地址范围内的地址(地址为nbytes-1)的内容。缓存可能是:
标签 | 描述 |
---|---|
ICACHE | Flush the instruction cache. |
DCACHE | Write back to memory and invalidate the affected valid cache lines. |
BCACHE | Same as (ICACHE|DCACHE). |
返回值
cacheflush() 成功返回0或-1错误。如果检测到错误,errno将指示错误。
错误
Error Code | 描述 |
---|---|
EFAULT | Some or all of the address range addr to (addr+nbytes-1) is not accessible. |
EINVAL | cache parameter is not one of ICACHE, DCACHE, or BCACHE. |
BUGS
目前的实现忽略addr和nbytes以论据。因此,总是刷新整个缓存。
注意
这个系统调用是仅适用于基于MIPS的系统。它不应该被用于准备移植的程序。