# MI_SwitchWram*

## Syntax

  `#include <twl/mi.h>`
  `int MI_SwitchWram( MIWramPos wram, MIWramProc proc, MIWramProc newProc );
  int MI_SwitchWramSlot( MIWramPos wram, int slot, MIWramSize size, MIWramProc proc, MIWramProc newProc );
  (define)
  void MI_SwitchWram_A( MIWramProc proc, MIWramProc newProc );
  void MI_SwitchWram_B( MIWramProc proc, MIWramProc newProc );
  void MI_SwitchWram_C( MIWramProc proc, MIWramProc newProc );
  void MI_SwitchWramSlot_A( int slot, MIWramSize size, MIWramProc proc, MIWramProc newProc );
  void MI_SwitchWramSlot_B( int slot, MIWramSize size, MIWramProc proc, MIWramProc newProc );
  void MI_SwitchWramSlot_C( int slot, MIWramSize size, MIWramProc proc, MIWramProc newProc );`

## Arguments

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

## Return Values

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

## Description

Changes the WRAM's master processor.

wram is the target WRAM.

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

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

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

newProc is the new master processor of the region after the change.

The `MI_SwitchWram` function changes the master processor within the specified WRAM from proc to newProc.

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

`MI_SwitchWram_A` is the #define directive of `MI_SwitchWram( MI_WRAM_A, ... )`.
`MI_SwitchWram_B` is the #define directive of `MI_SwitchWram( MI_WRAM_B, ... )`.
`MI_SwitchWram_C` is the #define directive of `MI_SwitchWram( MI_WRAM_C, ... )`.
`MI_SwitchWramSlot_A` is the #define directive of `MI_SwitchWramSlot( MI_WRAM_A, ... )`.
`MI_SwitchWramSlot_B` is the #define directive of `MI_SwitchWramSlot( MI_WRAM_B, ... )`.
`MI_SwitchWramSlot_C` is the #define directive of `MI_SwitchWramSlot( MI_WRAM_C, ... )`.

## See Also

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

## Revision History

2007/10/08 Initial version.

CONFIDENTIAL