名前


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 ベースのシステムでのみ有効である。 移植を意図したプログラムで使用すべきではない。

バグ


現在の実装では、引き数 addrnbytes は無視される。そのため、 常に全てのキャッシュがフラッシュされる。

openSUSE Logo

コンテンツ