# MI_FreeWram*

## 構文

  `#include <twl/mi.h>`
  `int MI_FreeWram( MIWramPos wram, MIWramProc proc );
  int MI_FreeWramSlot( MIWramPos wram, int slot, MIWramSize size, MIWramProc proc );
  (define)
  int MI_FreeWram_A( MIWramProc proc );
  int MI_FreeWram_B( MIWramProc proc );
  int MI_FreeWram_C( MIWramProc proc );
  int MI_FreeWramSlot_A( int slot, MIWramSize size, MIWramProc proc );
  int MI_FreeWramSlot_B( int slot, MIWramSize size, MIWramProc proc );
  int MI_FreeWramSlot_C( int slot, MIWramSize size, MIWramProc proc );`

## 引数

wram | 解放する領域のWRAM
slot | 開始slot番号
size | サイズ
proc | 解放する領域のマスタープロセッサ

## 返り値

解放したブロック数。0なら解放しなかった。-1 ならエラー。

## 説明

`MI_AllocWram*()` で確保したWRAM を解放します。

wram は対象となる WRAM です。

slot は 解放する領域の開始slot 番号です。

size は解放する領域の大きさで、MI_WRAM_SIZE_xxxKB で指定します。

proc は解放する領域のマスタープロセッサです。

領域が解放されても、その領域の予約情報はそのままとなります。(WRAM の予約は `MI_ReserveWram*()` で行います。)

`MI_FreeWram()` は指定のWRAM の中から、マスタープロセッサが指定のプロセッサになっているものを全て解放します。

`MI_FreeWramSlot()` は、slot と size で領域を指定して解放しようとします。但し、マスタープロセッサが指定のプロセッサと異なっている領域は解放しません。

`MI_FreeWram_A` は `MI_FreeWram( MI_WRAM_A, ... )` の define です。
`MI_FreeWram_B` は `MI_FreeWram( MI_WRAM_B, ... )` の define です。
`MI_FreeWram_C` は `MI_FreeWram( MI_WRAM_C, ... )` の define です。
`MI_FreeWramSlot_A` は `MI_FreeWramSlot( MI_WRAM_A, ... )` の define です。
`MI_FreeWramSlot_B` は `MI_FreeWramSlot( MI_WRAM_B, ... )` の define です。
`MI_FreeWramSlot_C` は `MI_FreeWramSlot( MI_WRAM_C, ... )` の define です。

## 参照

概要(ワークRAM)、MI関連の定数
`MI_AllocWram*()`, `MI_ReserveWram*()`

## 履歴

2007/08/22 初版