# MI_InitCache

## 構文

  `#include <nitro/mi.h>
  void MI_InitCache(MICache *cache, u32 page, void *buffer, u32 length);`

## 引数

cache | 初期化するMICache構造体へのポインタ
page | キャッシュ1ページあたりの大きさ このサイズは4バイト以上かつ2のべき乗である必要があります。
buffer | キャッシュページ管理情報として使用するバッファ
length | bufferのバイトサイズ ライブラリは、指定されたサイズで可能な限り多くのキャッシュページを用意します。 詳細は後述の「説明」をご参照ください。

## 返り値

なし。

## 説明

管理情報用のバッファとページサイズを指定してMICache構造体を初期化します。
この構造体は、与えられたバッファを使用して内部でキャッシュページのリストを用意します。
この構造体を使用して`MI_ReadCache()`および`MI_LoadCache()`を呼び出すことができます。

管理情報用バッファのサイズは用途に応じて任意のサイズを指定することが可能です。
ライブラリは、指定された page と length に対して

length / ( sizeof(MICachePage) + page )

で計算されるページ数を自動的に算出し、リスト構造として内部で管理します。
逆に、ページサイズと総数から所要バイト数を算出したい場合には

MI_CACHE_BUFFER_WORKSIZE(page, total)

のマクロで必要なサイズを取得することができます。

この機能は、デバイス読み込みアクセスを効率よく行うためのユーティリティです。
詳細はMICache構造体のリファレンスをご参照ください。

## 参照

`MI_ReadCache MI_LoadCache MI_IsCacheLoading
MICache`

## 履歴

2007/05/16 初版