Savestate the exit callback, reporting.

Seems like LoadExecForUser_362A956B() uses it, so we need to save it.
I have no confidence that function works correctly, so let's report it.
This commit is contained in:
Unknown W. Brackets 2013-09-29 00:19:54 -07:00
parent 91d73d0972
commit a7ec139b5a
3 changed files with 7 additions and 9 deletions

View File

@ -86,7 +86,6 @@
static bool kernelRunning = false;
KernelObjectPool kernelObjects;
KernelStats kernelStats;
// TODO: Savestate this?
u32 registeredExitCbId;
void __KernelInit()
@ -185,12 +184,15 @@ void __KernelShutdown()
void __KernelDoState(PointerWrap &p)
{
{
auto s = p.Section("Kernel", 1);
auto s = p.Section("Kernel", 1, 2);
if (!s)
return;
p.Do(kernelRunning);
kernelObjects.DoState(p);
if (s >= 2)
p.Do(registeredExitCbId);
}
{
@ -278,11 +280,6 @@ void sceKernelExitGameWithStatus()
Core_Stop();
}
int LoadExecForUser_362A956B()
{
return hleLoadExecForUser_362A956B();
}
u32 sceKernelRegisterExitCallback(u32 cbId)
{
DEBUG_LOG(SCEKERNEL,"sceKernelRegisterExitCallback(%i)", cbId);

View File

@ -3662,8 +3662,9 @@ void __KernelChangeThreadState(SceUID threadId, ThreadStatus newStatus)
__KernelChangeThreadState(t, newStatus);
}
int hleLoadExecForUser_362A956B()
int LoadExecForUser_362A956B()
{
WARN_LOG_REPORT(SCEKERNEL, "LoadExecForUser_362A956B()");
u32 error;
Callback *cb = kernelObjects.Get<Callback>(registeredExitCbId, error);
if (!cb) {

View File

@ -304,4 +304,4 @@ struct DebugThreadInfo
std::vector<DebugThreadInfo> GetThreadsInfo();
void __KernelChangeThreadState(SceUID threadId, ThreadStatus newStatus);
int hleLoadExecForUser_362A956B();
int LoadExecForUser_362A956B();