cacheflush -
命令キャッシュやデータキャッシュの内容をフラッシュする
#include <asm/cachectl.h>
int cacheflush(char *addr, int nbytes, int cache);
cacheflush() は addr から (addr+nbytes-1)
の範囲のユーザーアドレスに対応する
指定されたキャッシュをフラッシュする。
cache
には以下のいずれかを指定する:
- ICACHE
- 命令 (instruction)
キャッシュをフラッシュする。
- DCACHE
- 変更があったキャッシュラインをメモリーに書き戻し、無効にする。
- BCACHE
- (ICACHE|DCACHE) と同じ。
返り値¶
cacheflush()
は成功した場合は 0
を、失敗した場合は -1
を返す。エラーが検出された場合は
errno
にエラーが指示される。
エラー¶
- EFAULT
- addr から (addr+nbytes-1)
の範囲のアドレスの全てまたは一部が
アクセス可能ではない。
- EINVAL
- cache パラメーターが
ICACHE, DCACHE, BCACHE
のどれでもない。
この Linux
特有のシステムコールは
MIPS
ベースのシステムでのみ有効である。
移植を意図したプログラムで使用すべきではない。
現在の実装では、引き数
addr と nbytes
は無視される。そのため、
常に全てのキャッシュがフラッシュされる。