# MI_FreeWram

## Syntax

  `#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 );`

## Arguments

wram | WRAM region to be freed.
slot | Starting slot number.
size | Size.
proc | Master processor of the region to free.

## Return Values

Returns the number of blocks that were freed. If 0, nothing was freed. If -1, an error occurred.

## Description

Frees WRAM that was allocated with `MI_AllocWram*()`.

wram is the target WRAM.

slot is the starting slot number of the region to free.

size is the size of the region to free and is specified as "MI_WRAM_SIZE_xxxKB."

proc is the master processor of the region to be freed.

Even if a region is freed, the reservation information for that region will be retained. (WRAM reservations are made using the `MI_ReserveWram*` functions.)

`MI_FreeWram()` will free all areas within the specified WRAM whose master processor is the specified processor.

The `MI_FreeWramSlot` function attempts to free areas by specifying a region's slot and size. However, it will not free regions whose master processor is different from the specified processor.

`MI_FreeWram_A` is the #define directive of `MI_FreeWram( MI_WRAM_A, ... )`.
`MI_FreeWram_B` is the #define directive of `MI_FreeWram( MI_WRAM_B, ... )`.
`MI_FreeWram_C` is the #define directive of `MI_FreeWram( MI_WRAM_C, ... )`.
`MI_FreeWramSlot_A` is the #define directive of `MI_FreeWramSlot( MI_WRAM_A, ... )`.
`MI_FreeWramSlot_B` is the #define directive of `MI_FreeWramSlot( MI_WRAM_B, ... )`.
`MI_FreeWramSlot_C` is the #define directive of `MI_FreeWramSlot( MI_WRAM_C, ... )`.

## See Also

Overview (Work RAM)
MI-Related Constants
`MI_AllocWram*()`
`MI_ReserveWram*()`

## Revision History

2007/08/22 Initial version.

CONFIDENTIAL