# 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 the `MI_AllocWram*` function.

The wram argument is the target WRAM.

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

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

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

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

The `MI_FreeWram` function frees 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 does 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