名 前
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 は 無 視 さ れ る 。 そ の た め 、 常 に 全 て の キ ャ ッ シ ュ が フ ラ ッ シ ュ さ れ る 。
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。