Replace boot_get_mem_size with osGetMemSize
This commit is contained in:
parent
8319a25c5a
commit
9839a54b55
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
/*---------------------------------------------------------------------*
|
/*---------------------------------------------------------------------*
|
||||||
Copyright (C) 1998 Nintendo. (Originated by SGI)
|
Copyright (C) 1998 Nintendo. (Originated by SGI)
|
||||||
|
|
||||||
$RCSfile: os_system.h,v $
|
$RCSfile: os_system.h,v $
|
||||||
$Revision: 1.1 $
|
$Revision: 1.1 $
|
||||||
$Date: 1998/10/09 08:01:18 $
|
$Date: 1998/10/09 08:01:18 $
|
||||||
|
@ -54,7 +54,7 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Values for osTvType
|
* Values for osTvType
|
||||||
*/
|
*/
|
||||||
#define OS_TV_PAL 0
|
#define OS_TV_PAL 0
|
||||||
#define OS_TV_NTSC 1
|
#define OS_TV_NTSC 1
|
||||||
|
@ -103,7 +103,6 @@ extern OSIntMask __OSGlobalIntMask; /* global interrupt mask */
|
||||||
|
|
||||||
extern void osInitialize(void);
|
extern void osInitialize(void);
|
||||||
extern void osExit(void);
|
extern void osExit(void);
|
||||||
extern u32 osGetMemSize(void);
|
|
||||||
|
|
||||||
/* pre-NMI */
|
/* pre-NMI */
|
||||||
extern s32 osAfterPreNMI(void);
|
extern s32 osAfterPreNMI(void);
|
||||||
|
|
|
@ -2,8 +2,13 @@
|
||||||
#define _IN_LIB_BOOT_H
|
#define _IN_LIB_BOOT_H
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
|
|
||||||
|
#if VERSION >= VERSION_NTSC_1_0
|
||||||
|
extern s32 osGetMemSize(void);
|
||||||
|
#else
|
||||||
|
extern u32 osGetMemSize(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
void boot(void);
|
void boot(void);
|
||||||
s32 boot_get_mem_size(void);
|
|
||||||
void *boot_allocate_stack(s32 threadid, s32 size);
|
void *boot_allocate_stack(s32 threadid, s32 size);
|
||||||
void boot_check_stack_overflow(void);
|
void boot_check_stack_overflow(void);
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ u32 var8008dbcc;
|
||||||
OSSched g_Sched;
|
OSSched g_Sched;
|
||||||
OSScClient g_MainSchedClient;
|
OSScClient g_MainSchedClient;
|
||||||
#if VERSION >= VERSION_NTSC_1_0
|
#if VERSION >= VERSION_NTSC_1_0
|
||||||
u32 g_OsMemSize;
|
u32 g_SavedOsMemSize;
|
||||||
#else
|
#else
|
||||||
u16 *var800902e4;
|
u16 *var800902e4;
|
||||||
u16 var800902e8;
|
u16 var800902e8;
|
||||||
|
@ -54,9 +54,9 @@ extern u8 *_inflateSegmentRomStart;
|
||||||
extern u8 *_inflateSegmentRomEnd;
|
extern u8 *_inflateSegmentRomEnd;
|
||||||
|
|
||||||
#if VERSION >= VERSION_NTSC_1_0
|
#if VERSION >= VERSION_NTSC_1_0
|
||||||
s32 boot_get_mem_size(void)
|
s32 osGetMemSize(void)
|
||||||
{
|
{
|
||||||
return g_OsMemSize;
|
return g_SavedOsMemSize;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -89,10 +89,15 @@ void boot(void)
|
||||||
u32 flags;
|
u32 flags;
|
||||||
|
|
||||||
#if VERSION >= VERSION_NTSC_1_0
|
#if VERSION >= VERSION_NTSC_1_0
|
||||||
|
// In NTSC beta, libultra's osGetMemSize is used several times during boot.
|
||||||
|
// This function writes to the expansion area but this shouldn't be a problem...
|
||||||
|
// In NTSC 1.0 and later, libultra's osGetMemSize is not linked and is replaced
|
||||||
|
// with one which returns osMemSize. But it appears as though osMemSize is only
|
||||||
|
// reliable on a cold boot, because it's saved and reloaded here on a reset.
|
||||||
if (osResetType == RESETTYPE_WARM) {
|
if (osResetType == RESETTYPE_WARM) {
|
||||||
g_OsMemSize = *(u32 *) STACK_START;
|
g_SavedOsMemSize = *(u32 *) STACK_START;
|
||||||
} else {
|
} else {
|
||||||
*(u32 *) STACK_START = g_OsMemSize = osMemSize;
|
*(u32 *) STACK_START = g_SavedOsMemSize = osMemSize;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -404,7 +404,7 @@ void main_init(void)
|
||||||
// In 4MB mode, place it close to the end of memory,
|
// In 4MB mode, place it close to the end of memory,
|
||||||
// but before the thread stacks and VM system.
|
// but before the thread stacks and VM system.
|
||||||
// In 8MB mode, put it at the end of the expansion pak.
|
// In 8MB mode, put it at the end of the expansion pak.
|
||||||
if (boot_get_mem_size() <= 4 * 1024 * 1024) {
|
if (osGetMemSize() <= 4 * 1024 * 1024) {
|
||||||
addr = K0BASE + 4 * 1024 * 1024;
|
addr = K0BASE + 4 * 1024 * 1024;
|
||||||
addr -= STACKSIZE_MAIN;
|
addr -= STACKSIZE_MAIN;
|
||||||
addr -= STACKSIZE_IDLE;
|
addr -= STACKSIZE_IDLE;
|
||||||
|
|
|
@ -90,18 +90,9 @@ void memp_set_heap(u8 *heapstart, u32 heaplen)
|
||||||
g_MempOnboardPools[MEMPOOL_STAGE].rightpos = heapstart + heaplen;
|
g_MempOnboardPools[MEMPOOL_STAGE].rightpos = heapstart + heaplen;
|
||||||
|
|
||||||
// If 8MB, reserve the entire expansion pak for the stage pool
|
// If 8MB, reserve the entire expansion pak for the stage pool
|
||||||
#if VERSION >= VERSION_NTSC_1_0
|
|
||||||
extraend = (u8 *) K0BASE + boot_get_mem_size();
|
|
||||||
#else
|
|
||||||
extraend = (u8 *) K0BASE + osGetMemSize();
|
extraend = (u8 *) K0BASE + osGetMemSize();
|
||||||
#endif
|
|
||||||
|
|
||||||
#if VERSION >= VERSION_NTSC_1_0
|
if (osGetMemSize() > 4 * 1024 * 1024) {
|
||||||
if (boot_get_mem_size() > 4 * 1024 * 1024)
|
|
||||||
#else
|
|
||||||
if (osGetMemSize() > 4 * 1024 * 1024)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
g_MempExpansionPools[MEMPOOL_STAGE].start = (u8 *) K0BASE + 4 * 1024 * 1024;
|
g_MempExpansionPools[MEMPOOL_STAGE].start = (u8 *) K0BASE + 4 * 1024 * 1024;
|
||||||
g_MempExpansionPools[MEMPOOL_STAGE].rightpos = extraend;
|
g_MempExpansionPools[MEMPOOL_STAGE].rightpos = extraend;
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,12 +199,7 @@ void vm_init(void)
|
||||||
|
|
||||||
rzip_init();
|
rzip_init();
|
||||||
|
|
||||||
#if VERSION >= VERSION_NTSC_1_0
|
if (osGetMemSize() <= 0x400000) {
|
||||||
if (boot_get_mem_size() <= 0x400000)
|
|
||||||
#else
|
|
||||||
if (osGetMemSize() <= 0x400000)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
g_Is4Mb = true;
|
g_Is4Mb = true;
|
||||||
|
|
||||||
g_VmNumPages = (s32)((&_gameSegmentEnd - &_gameSegmentStart) + (VM_PAGE_SIZE - 1)) / VM_PAGE_SIZE;
|
g_VmNumPages = (s32)((&_gameSegmentEnd - &_gameSegmentStart) + (VM_PAGE_SIZE - 1)) / VM_PAGE_SIZE;
|
||||||
|
|
Loading…
Reference in New Issue