rFile.h, Thread.h, IdManager.h includes moved

This commit is contained in:
Nekotekina 2014-08-25 18:56:13 +04:00
parent 3c562afd49
commit 61c4a88ab4
52 changed files with 188 additions and 113 deletions

View File

@ -2,6 +2,7 @@
#include "rpcs3/Ini.h" #include "rpcs3/Ini.h"
#include "AutoPause.h" #include "AutoPause.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
#include "Emu/System.h" #include "Emu/System.h"
using namespace Debug; using namespace Debug;

View File

@ -183,3 +183,87 @@ template<typename T, typename T1, T1 value> struct _se<be_t<T>, T1, value> : pub
#define se16(x) _se<u16, decltype(x), x>::value #define se16(x) _se<u16, decltype(x), x>::value
#define se32(x) _se<u32, decltype(x), x>::value #define se32(x) _se<u32, decltype(x), x>::value
#define se64(x) _se<u64, decltype(x), x>::value #define se64(x) _se<u64, decltype(x), x>::value
template<typename T> __forceinline static u8 Read8(T& f)
{
u8 ret;
f.Read(&ret, sizeof(ret));
return ret;
}
template<typename T> __forceinline static u16 Read16(T& f)
{
be_t<u16> ret;
f.Read(&ret, sizeof(ret));
return ret;
}
template<typename T> __forceinline static u32 Read32(T& f)
{
be_t<u32> ret;
f.Read(&ret, sizeof(ret));
return ret;
}
template<typename T> __forceinline static u64 Read64(T& f)
{
be_t<u64> ret;
f.Read(&ret, sizeof(ret));
return ret;
}
template<typename T> __forceinline static u16 Read16LE(T& f)
{
u16 ret;
f.Read(&ret, sizeof(ret));
return ret;
}
template<typename T> __forceinline static u32 Read32LE(T& f)
{
u32 ret;
f.Read(&ret, sizeof(ret));
return ret;
}
template<typename T> __forceinline static u64 Read64LE(T& f)
{
u64 ret;
f.Read(&ret, sizeof(ret));
return ret;
}
template<typename T> __forceinline static void Write8(T& f, const u8 data)
{
f.Write(&data, sizeof(data));
}
template<typename T> __forceinline static void Write16LE(T& f, const u16 data)
{
f.Write(&data, sizeof(data));
}
template<typename T> __forceinline static void Write32LE(T& f, const u32 data)
{
f.Write(&data, sizeof(data));
}
template<typename T> __forceinline static void Write64LE(T& f, const u64 data)
{
f.Write(&data, sizeof(data));
}
template<typename T> __forceinline static void Write16(T& f, const u16 data)
{
Write16LE(f, re16(data));
}
template<typename T> __forceinline static void Write32(T& f, const u32 data)
{
Write32LE(f, re32(data));
}
template<typename T> __forceinline static void Write64(T& f, const u64 data)
{
Write64LE(f, re64(data));
}

View File

@ -12,6 +12,8 @@
#include <thread> #include <thread>
#include <set> #include <set>
#include <array> #include <array>
#include "Thread.h"
#include "rFile.h"
using namespace Log; using namespace Log;

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include <atomic>
bool SM_IsAborted(); bool SM_IsAborted();
void SM_Sleep(); void SM_Sleep();
size_t SM_GetCurrentThreadId(); size_t SM_GetCurrentThreadId();

View File

@ -1,5 +1,8 @@
#pragma once #pragma once
#include <mutex>
#include <condition_variable>
class SSemaphore class SSemaphore
{ {
const u32 m_max; const u32 m_max;

View File

@ -1,6 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Log.h" #include "Log.h"
#include <wx/dir.h> #include <wx/dir.h>
#include "rFile.h"
#ifdef _WIN32 #ifdef _WIN32
// Maybe in StrFmt? // Maybe in StrFmt?

View File

@ -3,6 +3,7 @@
#include "key_vault.h" #include "key_vault.h"
#include "unedat.h" #include "unedat.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
void generate_key(int crypto_mode, int version, unsigned char *key_final, unsigned char *iv_final, unsigned char *key, unsigned char *iv) void generate_key(int crypto_mode, int version, unsigned char *key_final, unsigned char *iv_final, unsigned char *key, unsigned char *iv)
{ {

View File

@ -7,6 +7,7 @@
#include <wx/progdlg.h> #include <wx/progdlg.h>
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
// Decryption. // Decryption.
bool CheckHeader(rFile& pkg_f, PKGHeader* m_header) bool CheckHeader(rFile& pkg_f, PKGHeader* m_header)

View File

@ -45,4 +45,6 @@ struct PKGEntry
be_t<u32> pad; // Padding (zeros) be_t<u32> pad; // Padding (zeros)
}; };
class rFile;
extern int Unpack(rFile& dec_pkg_f, std::string src, std::string dst); extern int Unpack(rFile& dec_pkg_f, std::string src, std::string dst);

View File

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
#include "aes.h" #include "aes.h"
#include "sha1.h" #include "sha1.h"
#include "utils.h" #include "utils.h"

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include "Utilities/rFile.h"
struct WAVHeader struct WAVHeader
{ {
struct RIFFHeader struct RIFFHeader

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include "Utilities/Thread.h"
enum CPUThreadType :unsigned char enum CPUThreadType :unsigned char
{ {
CPU_THREAD_PPU, CPU_THREAD_PPU,

View File

@ -1,4 +1,7 @@
#pragma once #pragma once
#include <mutex>
class CPUThread; class CPUThread;
class RawSPUThread; class RawSPUThread;
enum CPUThreadType : unsigned char; enum CPUThreadType : unsigned char;

View File

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "PPUProgramCompiler.h" #include "PPUProgramCompiler.h"
#include "Utilities/rFile.h"
using namespace PPU_instr; using namespace PPU_instr;

View File

@ -2,6 +2,7 @@
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Utilities/rFile.h"
#include "Emu/SysCalls/lv2/sys_time.h" #include "Emu/SysCalls/lv2/sys_time.h"

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "Emu/SysCalls/lv2/sys_event.h" #include "Emu/SysCalls/lv2/sys_event.h"
#include <unordered_map>
class EventManager class EventManager
{ {

View File

@ -1,6 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include <algorithm> #include <algorithm>
#include "vfsDevice.h" #include "vfsDevice.h"
#include "Utilities/rFile.h"
vfsDevice::vfsDevice(const std::string& ps3_path, const std::string& local_path) vfsDevice::vfsDevice(const std::string& ps3_path, const std::string& local_path)
: m_ps3_path(ps3_path) : m_ps3_path(ps3_path)

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "vfsFileBase.h" #include "vfsFileBase.h"
#include "vfsDirBase.h" #include "vfsDirBase.h"
#include <mutex>
class vfsDevice class vfsDevice
{ {

View File

@ -1,6 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "vfsDevice.h" #include "vfsDevice.h"
#include "vfsDirBase.h" #include "vfsDirBase.h"
#include "Utilities/rFile.h"
vfsDirBase::vfsDirBase(vfsDevice* device) vfsDirBase::vfsDirBase(vfsDevice* device)
: m_pos(0) : m_pos(0)

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "vfsDirBase.h" #include "vfsDirBase.h"
#include "Utilities/rFile.h"
class vfsLocalDir : public vfsDirBase class vfsLocalDir : public vfsDirBase
{ {

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "vfsFileBase.h" #include "vfsFileBase.h"
#include "Utilities/rFile.h"
class vfsLocalFile : public vfsFileBase class vfsLocalFile : public vfsFileBase
{ {

View File

@ -1,4 +1,5 @@
#pragma once #pragma once
#include <mutex>
#include <unordered_map> #include <unordered_map>
#include <set> #include <set>

View File

@ -183,6 +183,38 @@ void MemoryBase::Close()
#endif #endif
} }
void MemoryBase::WriteMMIO32(u32 addr, const u32 data)
{
{
std::lock_guard<std::recursive_mutex> lock(m_mutex);
if (RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET] &&
RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET]->Write32(addr, data))
{
return;
}
}
*(u32*)((u8*)GetBaseAddr() + addr) = re32(data); // provoke error
}
u32 MemoryBase::ReadMMIO32(u32 addr)
{
u32 res;
{
std::lock_guard<std::recursive_mutex> lock(m_mutex);
if (RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET] &&
RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET]->Read32(addr, &res))
{
return res;
}
}
res = re32(*(u32*)((u8*)GetBaseAddr() + addr)); // provoke error
return res;
}
bool MemoryBase::Map(const u64 dst_addr, const u64 src_addr, const u32 size) bool MemoryBase::Map(const u64 dst_addr, const u64 src_addr, const u32 size)
{ {
std::lock_guard<std::recursive_mutex> lock(m_mutex); std::lock_guard<std::recursive_mutex> lock(m_mutex);

View File

@ -199,20 +199,7 @@ public:
} }
} }
__noinline void WriteMMIO32(u32 addr, const u32 data) __noinline void WriteMMIO32(u32 addr, const u32 data);
{
{
std::lock_guard<std::recursive_mutex> lock(m_mutex);
if (RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET] &&
RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET]->Write32(addr, data))
{
return;
}
}
*(u32*)((u8*)GetBaseAddr() + addr) = re32(data); // provoke error
}
template<typename T> void Write32(T addr, const u32 data) template<typename T> void Write32(T addr, const u32 data)
{ {
@ -286,22 +273,7 @@ public:
} }
} }
__noinline u32 ReadMMIO32(u32 addr) __noinline u32 ReadMMIO32(u32 addr);
{
u32 res;
{
std::lock_guard<std::recursive_mutex> lock(m_mutex);
if (RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET] &&
RawSPUMem[(addr - RAW_SPU_BASE_ADDR) / RAW_SPU_OFFSET]->Read32(addr, &res))
{
return res;
}
}
res = re32(*(u32*)((u8*)GetBaseAddr() + addr)); // provoke error
return res;
}
template<typename T> u32 Read32(T addr) template<typename T> u32 Read32(T addr)
{ {

View File

@ -3,6 +3,7 @@
#define PAGE_4K(x) (x + 4095) & ~(4095) #define PAGE_4K(x) (x + 4095) & ~(4095)
#include <memory> #include <memory>
#include <mutex>
#include <emmintrin.h> #include <emmintrin.h>
struct MemInfo struct MemInfo

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "GLShaderParam.h" #include "GLShaderParam.h"
#include "Emu/RSX/RSXFragmentProgram.h" #include "Emu/RSX/RSXFragmentProgram.h"
#include "Utilities/Thread.h"
struct GLFragmentDecompilerThread : public ThreadBase struct GLFragmentDecompilerThread : public ThreadBase
{ {

View File

@ -1,6 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h" #include "rpcs3/Ini.h"
#include "Utilities/rPlatform.h" // only for rImage #include "Utilities/rPlatform.h" // only for rImage
#include "Utilities/rFile.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "GLShaderParam.h" #include "GLShaderParam.h"
#include "Emu/RSX/RSXVertexProgram.h" #include "Emu/RSX/RSXVertexProgram.h"
#include "Utilities/Thread.h"
struct GLVertexDecompilerThread : public ThreadBase struct GLVertexDecompilerThread : public ThreadBase
{ {

View File

@ -8,6 +8,7 @@
#include <stack> #include <stack>
#include <set> // For tracking a list of used gcm commands #include <set> // For tracking a list of used gcm commands
#include "Utilities/SSemaphore.h" #include "Utilities/SSemaphore.h"
#include "Utilities/Thread.h"
enum Method enum Method
{ {

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "Emu/SysCalls/SC_FUNC.h" #include "Emu/SysCalls/SC_FUNC.h"
#include "Emu/IdManager.h"
#include "ErrorCodes.h" #include "ErrorCodes.h"
#include "LogBase.h" #include "LogBase.h"

View File

@ -3,6 +3,7 @@
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Utilities/rFile.h"
#include "Emu/FS/vfsDir.h" #include "Emu/FS/vfsDir.h"
#include "Crypto/unedat.h" #include "Crypto/unedat.h"
#include "sceNp.h" #include "sceNp.h"

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "ErrorCodes.h" #include "ErrorCodes.h"
#include "LogBase.h" #include "LogBase.h"
#include "Emu/IdManager.h"
//#define SYSCALLS_DEBUG //#define SYSCALLS_DEBUG

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include <atomic>
// SysCalls // SysCalls
void sys_spinlock_initialize(mem_ptr_t<std::atomic<be_t<u32>>> lock); void sys_spinlock_initialize(mem_ptr_t<std::atomic<be_t<u32>>> lock);
void sys_spinlock_lock(mem_ptr_t<std::atomic<be_t<u32>>> lock); void sys_spinlock_lock(mem_ptr_t<std::atomic<be_t<u32>>> lock);

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include <atomic>
enum enum
{ {
SYS_SPU_THREAD_GROUP_TYPE_NORMAL = 0x00, SYS_SPU_THREAD_GROUP_TYPE_NORMAL = 0x00,

View File

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"

View File

@ -2,6 +2,7 @@
#include <atomic> #include <atomic>
#include "Emu/CPU/CPUThreadManager.h" #include "Emu/CPU/CPUThreadManager.h"
#include "Emu/IdManager.h"
#include "Emu/Io/Pad.h" #include "Emu/Io/Pad.h"
#include "Emu/Io/Keyboard.h" #include "Emu/Io/Keyboard.h"
#include "Emu/Io/Mouse.h" #include "Emu/Io/Mouse.h"

View File

@ -5,6 +5,7 @@
#include <fstream> #include <fstream>
#include <vector> #include <vector>
#include <mutex> #include <mutex>
#include <atomic>
#include "Ini.h" #include "Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"

View File

@ -1,6 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/AutoPause.h" #include "Utilities/AutoPause.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/FS/vfsDir.h" #include "Emu/FS/vfsDir.h"

View File

@ -1,4 +1,5 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/FS/vfsStream.h"
#include "ELF.h" #include "ELF.h"
void Elf_Ehdr::Show() void Elf_Ehdr::Show()

View File

@ -1,5 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
#include "Emu/FS/vfsStream.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "ELF32.h" #include "ELF32.h"

View File

@ -1,6 +1,9 @@
#pragma once #pragma once
#include "Loader.h" #include "Loader.h"
struct vfsStream;
class rFile;
struct Elf32_Ehdr struct Elf32_Ehdr
{ {
u32 e_magic; u32 e_magic;

View File

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rFile.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/SysCalls/SysCalls.h" #include "Emu/SysCalls/SysCalls.h"

View File

@ -1,6 +1,9 @@
#pragma once #pragma once
#include "Loader.h" #include "Loader.h"
struct vfsStream;
class rFile;
struct Elf64_Ehdr struct Elf64_Ehdr
{ {
u32 e_magic; u32 e_magic;

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include "Emu/FS/vfsFileBase.h"
struct vfsFileBase;
class rFile;
#ifdef _DEBUG #ifdef _DEBUG
//#define LOADER_DEBUG //#define LOADER_DEBUG
@ -38,84 +40,6 @@ enum ShdrFlag
SHF_MASKPROC = 0xf0000000, SHF_MASKPROC = 0xf0000000,
}; };
__forceinline static u8 Read8(vfsStream& f)
{
u8 ret;
f.Read(&ret, sizeof(u8));
return ret;
}
__forceinline static u16 Read16(vfsStream& f)
{
return ((u16)Read8(f) << 8) | (u16)Read8(f);
}
__forceinline static u32 Read32(vfsStream& f)
{
return (Read16(f) << 16) | Read16(f);
}
__forceinline static u64 Read64(vfsStream& f)
{
return ((u64)Read32(f) << 32) | (u64)Read32(f);
}
__forceinline static u16 Read16LE(vfsStream& f)
{
return ((u16)Read8(f) | ((u16)Read8(f) << 8));
}
__forceinline static u32 Read32LE(vfsStream& f)
{
return Read16LE(f) | (Read16LE(f) << 16);
}
__forceinline static u64 Read64LE(vfsStream& f)
{
return ((u64)Read32LE(f) | (u64)Read32LE(f) << 32);
}
__forceinline static void Write8(rFile& f, const u8 data)
{
f.Write(&data, 1);
}
__forceinline static void Write16(rFile& f, const u16 data)
{
Write8(f, data >> 8);
Write8(f, data);
}
__forceinline static void Write32(rFile& f, const u32 data)
{
Write16(f, data >> 16);
Write16(f, data);
}
__forceinline static void Write64(rFile& f, const u64 data)
{
Write32(f, data >> 32);
Write32(f, data);
}
__forceinline static void Write16LE(rFile& f, const u16 data)
{
Write8(f, data);
Write8(f, data >> 8);
}
__forceinline static void Write32LE(rFile& f, const u32 data)
{
Write16LE(f, data);
Write16LE(f, data >> 16);
}
__forceinline static void Write64LE(rFile& f, const u64 data)
{
Write32LE(f, data);
Write32LE(f, data >> 32);
}
const std::string Ehdr_DataToString(const u8 data); const std::string Ehdr_DataToString(const u8 data);
const std::string Ehdr_TypeToString(const u16 type); const std::string Ehdr_TypeToString(const u16 type);
const std::string Ehdr_OS_ABIToString(const u8 os_abi); const std::string Ehdr_OS_ABIToString(const u8 os_abi);

View File

@ -1,6 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/rMsgBox.h" #include "Utilities/rMsgBox.h"
#include "Utilities/rFile.h"
#include "PKG.h" #include "PKG.h"
#include "../Crypto/unpkg.h" #include "../Crypto/unpkg.h"

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "Loader.h"
class rFile;
class PKGLoader class PKGLoader
{ {

View File

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/FS/vfsStream.h"
#include "PSF.h" #include "PSF.h"
PSFLoader::PSFLoader(vfsStream& f) : psf_f(f) PSFLoader::PSFLoader(vfsStream& f) : psf_f(f)

View File

@ -1,6 +1,8 @@
#pragma once #pragma once
#include "Loader.h" #include "Loader.h"
struct vfsStream;
struct PSFHeader struct PSFHeader
{ {
u32 psf_magic; u32 psf_magic;

View File

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/FS/vfsStream.h"
#include "SELF.h" #include "SELF.h"
#include "ELF64.h" #include "ELF64.h"

View File

@ -1,6 +1,8 @@
#pragma once #pragma once
#include "Loader.h" #include "Loader.h"
struct vfsStream;
struct SceHeader struct SceHeader
{ {
u32 se_magic; u32 se_magic;

View File

@ -1,6 +1,8 @@
#pragma once #pragma once
#include "Loader.h" #include "Loader.h"
struct vfsStream;
struct TRPHeader struct TRPHeader
{ {
be_t<u32> trp_magic; be_t<u32> trp_magic;

View File

@ -252,9 +252,6 @@ struct u128
#include "Utilities/StrFmt.h" #include "Utilities/StrFmt.h"
#include "Utilities/BEType.h" #include "Utilities/BEType.h"
#include "Utilities/rFile.h"
#include "Utilities/Thread.h"
#include "Emu/IdManager.h"
#define _PRGNAME_ "RPCS3" #define _PRGNAME_ "RPCS3"
#define _PRGVER_ "0.0.0.5" #define _PRGVER_ "0.0.0.5"