
#include <twl/mi.h>u8 MI_GetAllocatableWramSlot( MIWramPos wram, MIWramProc proc );(define)#define MI_GetAllocatableWramSlot_A( MIWramProc proc );#define MI_GetAllocatableWramSlot_B( MIWramProc proc );#define MI_GetAllocatableWramSlot_C( MIWramProc proc );| wram | The WRAM to get information about. |
| proc | Processor. Gets the WRAM banks that can be assigned to this processor. Specify either MI_WRAM_ARM9, MI_WRAM_ARM7, or MI_WRAM_DSP. |
Returns information about those WRAM slots in the specified WRAM region that can be assigned to the specified processor. Returns slot values ranging from 0 to 3 for WRAM-A, or slot values ranging from 0 to 7 for WRAM-B and WRAM-C.
Gets information about which WRAM slots of the specified WRAM region can be assigned to the specified processor.
Assignable slots:
Assignable slots:
- The slot must not be assigned to any processor.
- The slot must either not be reserved by any processor, or must be reserved by the specified processor.
To be assignable, a slot must meet both conditions.
About the return values:
The lower bits of the u8 value indicate slot 0, slot 1, and so on (in order). If a given bit is 1, it means that the corresponding slot can be assigned.
For example, if the return value of MI_GetAllocatableWramSlot( MI_WRAM_B, MI_WRAM_ARM9 ) is 0xC0 (11000000 in binary), this indicates that WRAM-B slots 0, 1, 2, 3, 4, and 5 cannot be assigned to the ARM9 (these slots are already either assigned to another processor or reserved for another processor), and that slots 6 and 7 can be assigned to the ARM9.
If MI_WRAM_FREE is specified for the processor:
Normally, you specify MI_WRAM_ARM9, MI_WRAM_ARM7, or MI_WRAM_DSP as the proc argument to determine which WRAM slots can be allocated for the given processor, but it is also possible to specify MI_WRAM_FREE as a special way of using this function.
By specifying MI_WRAM_FREE, it is possible to obtain information about which WRAM slots are completely free (those slots that are not reserved for or allocated by anything), but there is also a separate function for doing just this, MI_GetFreeWramSlot(). We recommend using MI_GetFreeWramSlot().
Examples
Under the situation described above, the results will be as follows:
MI_GetAllocatableWramSlot( MI_WRAM_B, MI_WRAM_ARM9 )→ 0x0C
MI_GetAllocatableWramSlot( MI_WRAM_B, MI_WRAM_ARM7 )→ 0x48
MI_GetAllocatableWramSlot( MI_WRAM_B, MI_WRAM_DSP )→ 0x08
MI_GetAllocatableWramSlot( MI_WRAM_C, MI_WRAM_ARM9 )→ 0xDF
MI_GetAllocatableWramSlot( MI_WRAM_C, MI_WRAM_ARM7 )→ 0xD8
MI_GetAllocatableWramSlot( MI_WRAM_C, MI_WRAM_DSP )→ 0xD8
MI_GetAllocatableWramSlot( MI_WRAM_A, MI_WRAM_ARM9 )→ 0x00
MI_GetAllocatableWramSlot( MI_WRAM_A, MI_WRAM_ARM7 )→ 0x0F
MI_GetAllocatableWramSlot( MI_WRAM_A, MI_WRAM_DSP )→ 0x00
Convenience functions that include the WRAM type in the function name:
MI_GetAllocatableWramSlot_A(...) is the #define directive of MI_GetAllocatableWramSlot( MI_WRAM_A, ... ).MI_GetAllocatableWramSlot_B(...) is the #define directive of MI_GetAllocatableWramSlot( MI_WRAM_B, ... ).MI_GetAllocatableWramSlot_C(...) is the #define directive of MI_GetAllocatableWramSlot( MI_WRAM_C, ... ).
The WRAM manager managed by the ARM9 determines the return value.
The ARM7 gets values from the ARM9 through PXI.
Overview (Work RAM)
MI-Related Constants
MI_GetFreeWramSlot
MI_GetUsedWramSlot
2008/05/29 Initial version.
CONFIDENTIAL