pureikyubu/Docs/RE/OSArena.c
Andruxa 574b40f37b Some old reversing found )
RE: DVDLow
RE: DVD file open
RE: Some ETH (BBA lib)
2015-09-07 02:48:37 +03:00

47 lines
881 B
C

// Dolphin OS - heap aka arena. Last modified: 27 Feb 2006.
#include "OSPrivate.h"
static void *__OSArenaLo = (void *)0xFFFFFFFF, *__OSArenaHi = NULL;
#define RoundUp(addr, align) (((u32)(x) + ((u32)(align) - 1)) & ~((u32)(align) - 1))
#define RoundDown(addr, align) (((u32)(x)) & ~((u32)(align) - 1))
void *OSGetArenaHi(void)
{
return __OSArenaHi;
}
void *OSGetArenaLo(void)
{
return __OSArenaLo;
}
void OSSetArenaHi(void *newHi)
{
__OSArenaHi = newHi;
}
void OSSetArenaLo(void *newLo)
{
__OSArenaLo = newLo;
}
void *OSAllocFromArenaLo(u32 size, u32 align)
{
void *ptr;
ptr = RoundUp(__OSArenaLo, align);
__OSArenaLo = RoundUp(ptr + size, align);
return ptr;
}
void *OSAllocFromArenaHi(u32 size, u32 align)
{
void *ptr;
ptr = RoundDown(__OSArenaHi, align) - size;
__OSArenaHi = RoundDown(ptr);
return __OSArenaHi;
}