tp/libs/dolphin/os/OSReboot.c

35 lines
1.0 KiB
C

#include "dolphin/os/OSReboot.h"
#include "dolphin/os/OSContext.h"
#include "dolphin/os/OSExec.h"
/* 8033F5D0-8033F640 339F10 0070+00 0/0 1/1 0/0 .text __OSReboot */
void __OSReboot(u32 resetCode, u32 bootDol) {
struct OSContext context;
char* iVar1;
OSDisableInterrupts();
OSSetArenaLo((void*)0x81280000);
OSSetArenaHi((void*)0x812f0000);
OSClearContext(&context);
OSSetCurrentContext(&context);
iVar1 = NULL;
__OSBootDol(bootDol, resetCode | 0x80000000, &iVar1);
}
/* 80451688-8045168C 000B88 0004+00 2/2 0/0 0/0 .sbss SaveStart */
static void* SaveStart;
/* 8045168C-80451690 000B8C 0004+00 2/2 0/0 0/0 .sbss SaveEnd */
static void* SaveEnd;
/* 8033F640-8033F64C 339F80 000C+00 0/0 1/1 0/0 .text OSSetSaveRegion */
void OSSetSaveRegion(void* start, void* end) {
SaveStart = start;
SaveEnd = end;
}
/* 8033F64C-8033F660 339F8C 0014+00 0/0 1/1 0/0 .text OSGetSaveRegion */
void OSGetSaveRegion(void** start, void** end) {
*start = SaveStart;
*end = SaveEnd;
}