Skip to content

Commit

Permalink
Add SYS_Get{Physical,Simulated}Mem{,1,2}Size
Browse files Browse the repository at this point in the history
Rename SYS_AllocArena{1,2}Mem{Lo,Hi} to SYS_AllocArenaMem{1,2}{Lo,Hi}
  • Loading branch information
Extrems committed Feb 12, 2025
1 parent addf031 commit 0c34f60
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 21 deletions.
18 changes: 12 additions & 6 deletions gc/ogc/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,10 @@ distribution.
#define SYS_GetArenaHi SYS_GetArena1Hi
#define SYS_SetArenaHi SYS_SetArena1Hi
#define SYS_GetArenaSize SYS_GetArena1Size
#define SYS_AllocArenaMemLo SYS_AllocArena1MemLo
#define SYS_AllocArenaMemHi SYS_AllocArena1MemHi
#define SYS_AllocArenaMemLo SYS_AllocArenaMem1Lo
#define SYS_AllocArenaMemHi SYS_AllocArenaMem1Hi
#define SYS_GetPhysicalMemSize SYS_GetPhysicalMem1Size
#define SYS_GetSimulatedMemSize SYS_GetSimulatedMem1Size

#ifdef __cplusplus
extern "C" {
Expand Down Expand Up @@ -362,8 +364,10 @@ void SYS_SetArena1Lo(void *newLo);
void* SYS_GetArena1Hi(void);
void SYS_SetArena1Hi(void *newHi);
u32 SYS_GetArena1Size(void);
void* SYS_AllocArena1MemLo(u32 size,u32 align);
void* SYS_AllocArena1MemHi(u32 size,u32 align);
void* SYS_AllocArenaMem1Lo(u32 size,u32 align);
void* SYS_AllocArenaMem1Hi(u32 size,u32 align);
u32 SYS_GetPhysicalMem1Size(void);
u32 SYS_GetSimulatedMem1Size(void);

resetcallback SYS_SetResetCallback(resetcallback cb);

Expand All @@ -377,8 +381,10 @@ void SYS_SetArena2Lo(void *newLo);
void* SYS_GetArena2Hi(void);
void SYS_SetArena2Hi(void *newHi);
u32 SYS_GetArena2Size(void);
void* SYS_AllocArena2MemLo(u32 size,u32 align);
void* SYS_AllocArena2MemHi(u32 size,u32 align);
void* SYS_AllocArenaMem2Lo(u32 size,u32 align);
void* SYS_AllocArenaMem2Hi(u32 size,u32 align);
u32 SYS_GetPhysicalMem2Size(void);
u32 SYS_GetSimulatedMem2Size(void);

powercallback SYS_SetPowerCallback(powercallback cb);
#endif
Expand Down
4 changes: 2 additions & 2 deletions libogc/lwp_wkspace.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ void __lwp_wkspace_init(u32 size)
{
void *heap_addr = NULL;

heap_addr = SYS_AllocArena1MemLo(size,PPC_CACHE_ALIGNMENT);
heap_addr = SYS_AllocArenaMem1Lo(size,PPC_CACHE_ALIGNMENT);
#if defined(HW_RVL)
if(!heap_addr)
heap_addr = SYS_AllocArena2MemLo(size,PPC_CACHE_ALIGNMENT);
heap_addr = SYS_AllocArenaMem2Lo(size,PPC_CACHE_ALIGNMENT);
#endif
memset(heap_addr,0,size);
__wkspace_heap_size = __lwp_heap_init(&__wkspace_heap,heap_addr,size,PPC_ALIGNMENT);
Expand Down
2 changes: 1 addition & 1 deletion libogc/network_wii.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ static s32 NetCreateHeap(void)
return IPC_OK;
}

net_heap_ptr = SYS_AllocArena2MemHi(NET_HEAP_SIZE, 32);
net_heap_ptr = SYS_AllocArenaMem2Hi(NET_HEAP_SIZE, 32);
if(!net_heap_ptr)
{
_CPU_ISR_Restore(level);
Expand Down
59 changes: 49 additions & 10 deletions libogc/system.c
Original file line number Diff line number Diff line change
Expand Up @@ -1165,10 +1165,7 @@ void SYS_ResetSystem(s32 reset,u32 reset_code,s32 force_menu)

__PADDisableRecalibration(ret);
}
#endif

#if defined(HW_RVL)

#elif defined(HW_RVL)
void SYS_ResetSystem(s32 reset,u32 reset_code,s32 force_menu)
{
u32 ret = 0;
Expand Down Expand Up @@ -1310,7 +1307,7 @@ u32 SYS_GetArena1Size(void)
return size;
}

void* SYS_AllocArena1MemLo(u32 size,u32 align)
void* SYS_AllocArenaMem1Lo(u32 size,u32 align)
{
u32 level;
void *arenalo,*ptr;
Expand All @@ -1329,7 +1326,7 @@ void* SYS_AllocArena1MemLo(u32 size,u32 align)
return ptr;
}

void* SYS_AllocArena1MemHi(u32 size,u32 align)
void* SYS_AllocArenaMem1Hi(u32 size,u32 align)
{
u32 level;
void *arenahi,*ptr;
Expand All @@ -1347,7 +1344,36 @@ void* SYS_AllocArena1MemHi(u32 size,u32 align)
return ptr;
}

#if defined(HW_RVL)
#if defined(HW_DOL)
u32 SYS_GetPhysicalMem1Size(void)
{
u32 size;
size = *((u32*)0x80000028);
return size;
}

u32 SYS_GetSimulatedMem1Size(void)
{
u32 size;
size = *((u32*)0x800000f0);
if(!size) size = *((u32*)0x80000028);
return size;
}
#elif defined(HW_RVL)
u32 SYS_GetPhysicalMem1Size(void)
{
u32 size;
size = *((u32*)0x80003100);
return size;
}

u32 SYS_GetSimulatedMem1Size(void)
{
u32 size;
size = *((u32*)0x80003104);
return size;
}

void SYS_SetArena2Lo(void *newLo)
{
u32 level;
Expand Down Expand Up @@ -1401,7 +1427,7 @@ u32 SYS_GetArena2Size(void)
return size;
}

void* SYS_AllocArena2MemLo(u32 size,u32 align)
void* SYS_AllocArenaMem2Lo(u32 size,u32 align)
{
u32 level;
void *arenalo,*ptr;
Expand All @@ -1420,7 +1446,7 @@ void* SYS_AllocArena2MemLo(u32 size,u32 align)
return ptr;
}

void* SYS_AllocArena2MemHi(u32 size,u32 align)
void* SYS_AllocArenaMem2Hi(u32 size,u32 align)
{
u32 level;
void *arenahi,*ptr;
Expand All @@ -1437,6 +1463,20 @@ void* SYS_AllocArena2MemHi(u32 size,u32 align)
_CPU_ISR_Restore(level);
return ptr;
}

u32 SYS_GetPhysicalMem2Size(void)
{
u32 size;
size = *((u32*)0x80003118);
return size;
}

u32 SYS_GetSimulatedMem2Size(void)
{
u32 size;
size = *((u32*)0x8000311c);
return size;
}
#endif

void SYS_ProtectRange(u32 chan,void *addr,u32 bytes,u32 cntrl)
Expand All @@ -1462,7 +1502,6 @@ void SYS_ProtectRange(u32 chan,void *addr,u32 bytes,u32 cntrl)
if(cntrl==SYS_PROTECTRDWR)
__MaskIrq(IRQMASK(chan));


_CPU_ISR_Restore(level);
}
}
Expand Down
2 changes: 1 addition & 1 deletion libogc/usbstorage.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ s32 USBStorage_Initialize(void)

_CPU_ISR_Disable(level);
if(!arena_ptr) {
arena_ptr = SYS_AllocArena2MemHi(HEAP_SIZE, 32);
arena_ptr = SYS_AllocArenaMem2Hi(HEAP_SIZE, 32);
if(!arena_ptr) {
_CPU_ISR_Restore(level);
return IPC_ENOMEM;
Expand Down
2 changes: 1 addition & 1 deletion lwbt/physbusif.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ static s32 __initUsbIOBuffer(struct memb_blks *blk,u32 buf_size,u32 num_bufs)
u8 *ptr = NULL;

len = ((MEM_ALIGN_SIZE(buf_size)+sizeof(u32))*num_bufs);
ptr = (u8*)SYS_AllocArena2MemHi(len,32);
ptr = (u8*)SYS_AllocArenaMem2Hi(len,32);
if(ptr==NULL) return -4;

blk->size = buf_size;
Expand Down

0 comments on commit 0c34f60

Please sign in to comment.