# IC_InvalidateRange

## 構文

      #include <nitro/os.h>

      void IC_InvalidateRange( void* startAddr, u32 nBytes );

## 引数

startAddr | 無効化する領域の最下位アドレス
nBytes | 無効化する領域のバイト数

## 返り値

なし。

## 説明

指定された命令キャッシュ領域の命令コードを無効にします。

startAddr は32バイト単位で下位方向に丸められます。startAddr + nBytes は32バイト単位で上位方向に丸められます。

注意

ARM プロセッサのオフィシャルドキュメントでは、キャッシュを無効化する動作を "Flush" と記述してる場合がありますが、本 SDK の API では GAMECUBE や Nintendo64 などの API との統一性を重視するため、無効化を "Invalidate" と記述しています。ご注意ください。

## 内部動作

この関数は、システム制御コプロセッサのレジスタ7を操作しています。

この関数は指定領域をキャッシュライン単位に分割して操作を繰り返すため、領域サイズに比例した処理時間を必要とします。

## 参照

`IC_InvalidateAll
DC_InvalidateAll DC_InvalidateRange
DC_StoreAll DC_StoreRange
DC_FlushAll DC_FlushRange`

## 履歴

2005/04/19 領域サイズに比例した処理時間を要する旨を追記
2003/12/22 初版