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的係統。它不應該被用於準備移植的程序。