cacheflush - システムコールの説明 - Linux コマンド集 一覧表
名前
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 のどれでもない。
バグ
現在の実装では、引き数 addr と nbytes は無視される。そのため、 常に全てのキャッシュがフラッシュされる。
注意
このシステムコールは MIPS ベースのシステムでのみ有効である。
移植を意図したプログラムで使用すべきではない。