예제 #1
0
파일: sceKernel.cpp 프로젝트: CPkmn/ppsspp
void __KernelDoState(PointerWrap &p)
{
	std::string git_version = PPSSPP_GIT_VERSION;
	p.Do(git_version);
	if (git_version != PPSSPP_GIT_VERSION)
	{
		p.SetError(p.ERROR_WARNING);
		WARN_LOG(HLE, "Warning: this savestate was generated by a different version of PPSSPP.  It may not load properly.");
	}

	p.Do(kernelRunning);
	kernelObjects.DoState(p);
	p.DoMarker("KernelObjects");

	__InterruptsDoState(p);
	// Memory needs to be after kernel objects, which may free kernel memory.
	__KernelMemoryDoState(p);
	__KernelThreadingDoState(p);
	__KernelAlarmDoState(p);
	__KernelVTimerDoState(p);
	__KernelEventFlagDoState(p);
	__KernelMbxDoState(p);
	__KernelModuleDoState(p);
	__KernelMutexDoState(p);
	__KernelSemaDoState(p);
	__KernelTimeDoState(p);

	__AtracDoState(p);
	__AudioDoState(p);
	__CtrlDoState(p);
	__DisplayDoState(p);
	__FontDoState(p);
	__GeDoState(p);
	__ImposeDoState(p);
	__IoDoState(p);
	__MpegDoState(p);
	__NetDoState(p);
	__PowerDoState(p);
	__PsmfDoState(p);
	__PsmfPlayerDoState(p);
	__RtcDoState(p);
	__SasDoState(p);
	__SslDoState(p);
	__UmdDoState(p);
	__UtilityDoState(p);
	__UsbDoState(p);
	__VaudioDoState(p);

	__PPGeDoState(p);

	__InterruptsDoStateLate(p);
	__KernelThreadingDoStateLate(p);
}
예제 #2
0
void __KernelDoState(PointerWrap &p)
{
	p.Do(kernelRunning);
	kernelObjects.DoState(p);
	p.DoMarker("KernelObjects");

	__InterruptsDoState(p);
	// Memory needs to be after kernel objects, which may free kernel memory.
	__KernelMemoryDoState(p);
	__KernelThreadingDoState(p);
	__KernelAlarmDoState(p);
	__KernelVTimerDoState(p);
	__KernelEventFlagDoState(p);
	__KernelMbxDoState(p);
	__KernelModuleDoState(p);
	__KernelMsgPipeDoState(p);
	__KernelMutexDoState(p);
	__KernelSemaDoState(p);
	__KernelTimeDoState(p);

	__AtracDoState(p);
	__AudioDoState(p);
	__CccDoState(p);
	__CtrlDoState(p);
	__DisplayDoState(p);
	__FontDoState(p);
	__GeDoState(p);
	__ImposeDoState(p);
	__IoDoState(p);
	__JpegDoState(p);
	__MpegDoState(p);
	__NetDoState(p);
	__PowerDoState(p);
	__PsmfDoState(p);
	__PsmfPlayerDoState(p);
	__RtcDoState(p);
	__SasDoState(p);
	__SslDoState(p);
	__UmdDoState(p);
	__UtilityDoState(p);
	__UsbDoState(p);
	__VaudioDoState(p);

	__PPGeDoState(p);

	__InterruptsDoStateLate(p);
	__KernelThreadingDoStateLate(p);
}
예제 #3
0
void __KernelDoState(PointerWrap &p)
{
	{
		auto s = p.Section("Kernel", 1, 2);
		if (!s)
			return;

		p.Do(kernelRunning);
		kernelObjects.DoState(p);

		if (s >= 2)
			p.Do(registeredExitCbId);
	}

	{
		auto s = p.Section("Kernel Modules", 1);
		if (!s)
			return;

		__InterruptsDoState(p);
		// Memory needs to be after kernel objects, which may free kernel memory.
		__KernelMemoryDoState(p);
		__KernelThreadingDoState(p);
		__KernelAlarmDoState(p);
		__KernelVTimerDoState(p);
		__KernelEventFlagDoState(p);
		__KernelMbxDoState(p);
		__KernelModuleDoState(p);
		__KernelMsgPipeDoState(p);
		__KernelMutexDoState(p);
		__KernelSemaDoState(p);
		__KernelTimeDoState(p);
	}

	{
		auto s = p.Section("HLE Modules", 1);
		if (!s)
			return;

		__AtracDoState(p);
		__AudioDoState(p);
		__CccDoState(p);
		__CtrlDoState(p);
		__DisplayDoState(p);
		__FontDoState(p);
		__GeDoState(p);
		__ImposeDoState(p);
		__IoDoState(p);
		__JpegDoState(p);
		__Mp3DoState(p);
		__MpegDoState(p);
		__NetDoState(p);
		__NetAdhocDoState(p);
		__PowerDoState(p);
		__PsmfDoState(p);
		__PsmfPlayerDoState(p);
		__RtcDoState(p);
		__SasDoState(p);
		__SslDoState(p);
		__UmdDoState(p);
		__UtilityDoState(p);
		__UsbDoState(p);
		__VaudioDoState(p);
		__HeapDoState(p);

		__PPGeDoState(p);
		__CheatDoState(p);
	}

	{
		auto s = p.Section("Kernel Cleanup", 1);
		if (!s)
			return;

		__InterruptsDoStateLate(p);
		__KernelThreadingDoStateLate(p);
		Reporting::DoState(p);
	}
}