# CARD_SetCacheFlushFlag

## 構文

  `#include <nitro/card.h>`
  `void CARD_SetCacheFlushFlag(BOOL icache, BOOL dcache);`

## 引数

icache | 命令キャッシュの自動無効化を有効にするならTRUE
dcache | データキャッシュの自動無効化を有効にするならTRUE

## 返り値

なし。

## 説明

ライブラリ内部でROMデータの読み込みが発生した場合にキャッシュ無効化処理を自動的に行うかどうかを設定します。

ROMデータをメモリへ読み込むときに最も安全なキャッシュ操作は 命令キャッシュを常に無効化してDMA転送ならばデータキャッシュも無効化しておくことですが、 キャッシュを考慮する必要のないことが明らかである場合にこれらの操作は冗長となります。 この関数は、そのようなキャッシュ無効化処理の有無を変更することが出来ます。

CARDライブラリがROMデータをメモリへ読み込む際、ここで設定した内容にしたがって自動的にキャッシュ操作を行います。
デフォルト設定では、icacheがFALSE、dcacheがTRUEになっています。 これは、データキャッシュは無効化するが命令キャッシュは無効化しないことを示します。
特別な理由が無い限りはデフォルトの設定から変更する必要はありません。

命令キャッシュはFSライブラリやELライブラリなどの上位ライブラリが実行コードを制御する場面でも同様に操作しているため、 CARDライブラリでの読み込み時に考慮しなくとも特に問題が生じることはありません。

データキャッシュについてはVRAM、DMA、ARM7など外部メモリデバイスを扱う全ての上位ライブラリへ影響がおよびますので、 よほど限定された状況でない限りはデフォルトのTRUEから変更すべきではありません。

## 参照

`CARD_GetCacheFlushFlag`

## 履歴

2008/12/05 初版