CACHEFLUSH(2)

名前
cacheflush - 命令キャッシュやデータキャッシュの内容をフラッシュする

書式
#include <asm/cachectl.h>

int cacheflush(char *addr, int nbytes, int cache);

説明
cacheflush はユーザーが指示した addr から (addr+nbytes-1) の範囲の キャッシュ(cache)をフラッシュ(flush)する。キャッシュは以下のどれか:

ICACHE
    命令(instruction)キャッシュをフラッシュする。

DCACHE
    機能しているキャッシュをメモリに書き戻し、無効にする。

BCACHE
    (ICACHE|DCACHE) と同じ。

返り値
cacheflush は成功した場合は 0 を、失敗した場合は -1 を返す。もしエラーが発見されたら、 errno にエラーが指示される。

エラー

EINVAL
    cache パラメーターが ICACHE, DCACHE, BCACHE のどれでもない。

EFAULT
    addr から (addr+nbytes-1) の範囲のアドレスの全てまたは一部が アクセス可能ではない。

バグ
現在の実装では addr と nbytes パラメーターは無視される。それで常に 全てのキャッシュがフラッシュされる。

注意
このシステム・コールは MIPS ベースのシステムでのみ有効である。 移植を意図したプログラムで使用してはいけない。