位置:首頁 > 其他技術 > Unix/Linux係統調用 > cacheflush()函數 Unix/Linux

cacheflush()函數 Unix/Linux

名稱

cacheflush - 刷新指令和/或數據高速緩存的內容

內容簡介

#include  

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