DEV9: implement lifecycle callbacks

This commit is contained in:
Gauvain 'GovanifY' Roussel-Tarbouriech 2020-10-03 18:01:30 +02:00 committed by refractionpcsx2
parent a2e2ed1ecf
commit ab22d56735
5 changed files with 10 additions and 91 deletions

View File

@ -638,6 +638,10 @@ static flash_info_t devices[] = {
extern void dev9Irq(int cycles);
void FLASHinit();
s32 DEV9init();
void DEV9close();
s32 DEV9open(void *pDsp);
void DEV9shutdown();
u32 FLASHread32(u32 addr, int size);
void FLASHwrite32(u32 addr, u32 value, int size);
void _DEV9irq(int cause, int cycles);

View File

@ -1,46 +0,0 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2014 David Quintana [gigaherz]
*
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCSX2.
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __PS2ETYPES_H__
#define __PS2ETYPES_H__
// Basic types
#if defined(_WIN32)
typedef __int8 s8;
typedef __int16 s16;
typedef __int32 s32;
typedef __int64 s64;
typedef unsigned __int8 u8;
typedef unsigned __int16 u16;
typedef unsigned __int32 u32;
typedef unsigned __int64 u64;
#elif defined(__linux__)
typedef char s8;
typedef short s16;
typedef long s32;
typedef long long s64;
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
typedef unsigned long long u64;
#endif
#endif /* __PS2ETYPES_H__ */

View File

@ -1,30 +0,0 @@
; DEV9ghzdrk.def : Declares the module parameters for the DLL.
EXPORTS
; Explicit exports can go here
PS2EgetLibType @2
PS2EgetLibName @3
PS2EgetLibVersion2 @4
DEV9init @5
DEV9shutdown @6
DEV9open @7
DEV9close @8
DEV9read8 @9
DEV9read16 @10
DEV9read32 @11
DEV9write8 @12
DEV9write16 @13
DEV9write32 @14
DEV9readDMA8Mem @15
DEV9writeDMA8Mem @16
DEV9configure @17
DEV9test @18
DEV9about @19
DEV9irqCallback @20
DEV9irqHandler @21
DEV9async @22
DEV9setSettingsDir
DEV9setLogDir

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
<SvnRootDir>$(ProjectRootDir)\..\..</SvnRootDir>
<SvnCommonDir>$(SvnRootDir)\common</SvnCommonDir>
</PropertyGroup>
<PropertyGroup>
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="SvnRootDir">
<Value>$(SvnRootDir)</Value>
</BuildMacro>
</ItemGroup>
</Project>

View File

@ -28,6 +28,7 @@
#include "IPC.h"
#include "FW.h"
#include "SPU2/spu2.h"
#include "DEV9/DEV9.h"
#include "../DebugTools/MIPSAnalyst.h"
#include "../DebugTools/SymbolMap.h"
@ -94,6 +95,7 @@ void SysCoreThread::Start()
return;
GetCorePlugins().Init();
SPU2init();
DEV9init();
_parent::Start();
}
@ -301,6 +303,7 @@ void SysCoreThread::ExecuteTaskInThread()
void SysCoreThread::OnSuspendInThread()
{
GetCorePlugins().Close();
DEV9close();
DoCDVDclose();
FWclose();
SPU2close();
@ -313,6 +316,7 @@ void SysCoreThread::OnResumeInThread(bool isSuspended)
DoCDVDopen();
FWopen();
SPU2open((void*)pDsp);
DEV9open((void*)pDsp);
}
@ -328,11 +332,13 @@ void SysCoreThread::OnCleanupInThread()
// FIXME: temporary workaround for deadlock on exit, which actually should be a crash
vu1Thread.WaitVU();
SPU2close();
DEV9close();
DoCDVDclose();
FWclose();
GetCorePlugins().Close();
GetCorePlugins().Shutdown();
SPU2shutdown();
DEV9shutdown();
_mm_setcsr(m_mxcsr_saved.bitmask);
Threading::DisableHiresScheduler();