yuzu-emu
/
yuzu-android
Archived
1
0
Fork 0

core: Namespace all code in the arm subdirectory under the Core namespace

Gets all of these types and interfaces out of the global namespace.
This commit is contained in:
Lioncash 2018-08-24 21:43:32 -04:00
parent 165c23c848
commit 43e0d865fa
13 changed files with 42 additions and 12 deletions

View File

@ -8,6 +8,8 @@
#include "common/common_types.h" #include "common/common_types.h"
#include "core/hle/kernel/vm_manager.h" #include "core/hle/kernel/vm_manager.h"
namespace Core {
/// Generic ARM11 CPU interface /// Generic ARM11 CPU interface
class ARM_Interface : NonCopyable { class ARM_Interface : NonCopyable {
public: public:
@ -122,3 +124,5 @@ public:
/// Prepare core for thread reschedule (if needed to correctly handle state) /// Prepare core for thread reschedule (if needed to correctly handle state)
virtual void PrepareReschedule() = 0; virtual void PrepareReschedule() = 0;
}; };
} // namespace Core

View File

@ -14,6 +14,8 @@
#include "core/hle/kernel/svc.h" #include "core/hle/kernel/svc.h"
#include "core/memory.h" #include "core/memory.h"
namespace Core {
using Vector = Dynarmic::A64::Vector; using Vector = Dynarmic::A64::Vector;
class ARM_Dynarmic_Callbacks : public Dynarmic::A64::UserCallbacks { class ARM_Dynarmic_Callbacks : public Dynarmic::A64::UserCallbacks {
@ -300,3 +302,5 @@ bool DynarmicExclusiveMonitor::ExclusiveWrite128(size_t core_index, VAddr vaddr,
Memory::Write64(vaddr, value[1]); Memory::Write64(vaddr, value[1]);
}); });
} }
} // namespace Core

View File

@ -12,6 +12,8 @@
#include "core/arm/exclusive_monitor.h" #include "core/arm/exclusive_monitor.h"
#include "core/arm/unicorn/arm_unicorn.h" #include "core/arm/unicorn/arm_unicorn.h"
namespace Core {
class ARM_Dynarmic_Callbacks; class ARM_Dynarmic_Callbacks;
class DynarmicExclusiveMonitor; class DynarmicExclusiveMonitor;
@ -81,3 +83,5 @@ private:
friend class ARM_Dynarmic; friend class ARM_Dynarmic;
Dynarmic::A64::ExclusiveMonitor monitor; Dynarmic::A64::ExclusiveMonitor monitor;
}; };
} // namespace Core

View File

@ -4,4 +4,8 @@
#include "core/arm/exclusive_monitor.h" #include "core/arm/exclusive_monitor.h"
namespace Core {
ExclusiveMonitor::~ExclusiveMonitor() = default; ExclusiveMonitor::~ExclusiveMonitor() = default;
} // namespace Core

View File

@ -6,6 +6,8 @@
#include "common/common_types.h" #include "common/common_types.h"
namespace Core {
class ExclusiveMonitor { class ExclusiveMonitor {
public: public:
virtual ~ExclusiveMonitor(); virtual ~ExclusiveMonitor();
@ -19,3 +21,5 @@ public:
virtual bool ExclusiveWrite64(size_t core_index, VAddr vaddr, u64 value) = 0; virtual bool ExclusiveWrite64(size_t core_index, VAddr vaddr, u64 value) = 0;
virtual bool ExclusiveWrite128(size_t core_index, VAddr vaddr, u128 value) = 0; virtual bool ExclusiveWrite128(size_t core_index, VAddr vaddr, u128 value) = 0;
}; };
} // namespace Core

View File

@ -11,6 +11,8 @@
#include "core/core_timing.h" #include "core/core_timing.h"
#include "core/hle/kernel/svc.h" #include "core/hle/kernel/svc.h"
namespace Core {
// Load Unicorn DLL once on Windows using RAII // Load Unicorn DLL once on Windows using RAII
#ifdef _MSC_VER #ifdef _MSC_VER
#include <unicorn_dynload.h> #include <unicorn_dynload.h>
@ -211,7 +213,7 @@ void ARM_Unicorn::ExecuteInstructions(int num_instructions) {
} }
} }
void ARM_Unicorn::SaveContext(ARM_Interface::ThreadContext& ctx) { void ARM_Unicorn::SaveContext(ThreadContext& ctx) {
int uregs[32]; int uregs[32];
void* tregs[32]; void* tregs[32];
@ -238,7 +240,7 @@ void ARM_Unicorn::SaveContext(ARM_Interface::ThreadContext& ctx) {
CHECKED(uc_reg_read_batch(uc, uregs, tregs, 32)); CHECKED(uc_reg_read_batch(uc, uregs, tregs, 32));
} }
void ARM_Unicorn::LoadContext(const ARM_Interface::ThreadContext& ctx) { void ARM_Unicorn::LoadContext(const ThreadContext& ctx) {
int uregs[32]; int uregs[32];
void* tregs[32]; void* tregs[32];
@ -277,3 +279,5 @@ void ARM_Unicorn::RecordBreak(GDBStub::BreakpointAddress bkpt) {
last_bkpt = bkpt; last_bkpt = bkpt;
last_bkpt_hit = true; last_bkpt_hit = true;
} }
} // namespace Core

View File

@ -9,6 +9,8 @@
#include "core/arm/arm_interface.h" #include "core/arm/arm_interface.h"
#include "core/gdbstub/gdbstub.h" #include "core/gdbstub/gdbstub.h"
namespace Core {
class ARM_Unicorn final : public ARM_Interface { class ARM_Unicorn final : public ARM_Interface {
public: public:
ARM_Unicorn(); ARM_Unicorn();
@ -46,3 +48,5 @@ private:
GDBStub::BreakpointAddress last_bkpt{}; GDBStub::BreakpointAddress last_bkpt{};
bool last_bkpt_hit; bool last_bkpt_hit;
}; };
} // namespace Core

View File

@ -22,8 +22,6 @@
#include "video_core/debug_utils/debug_utils.h" #include "video_core/debug_utils/debug_utils.h"
#include "video_core/gpu.h" #include "video_core/gpu.h"
class ARM_Interface;
namespace Core::Frontend { namespace Core::Frontend {
class EmuWindow; class EmuWindow;
} }
@ -38,6 +36,8 @@ class RendererBase;
namespace Core { namespace Core {
class ARM_Interface;
class System { class System {
public: public:
System(const System&) = delete; System(const System&) = delete;

View File

@ -12,14 +12,14 @@
#include "common/common_types.h" #include "common/common_types.h"
#include "core/arm/exclusive_monitor.h" #include "core/arm/exclusive_monitor.h"
class ARM_Interface;
namespace Kernel { namespace Kernel {
class Scheduler; class Scheduler;
} }
namespace Core { namespace Core {
class ARM_Interface;
constexpr unsigned NUM_CPU_CORES{4}; constexpr unsigned NUM_CPU_CORES{4};
class CpuBarrier { class CpuBarrier {

View File

@ -17,7 +17,7 @@ namespace Kernel {
std::mutex Scheduler::scheduler_mutex; std::mutex Scheduler::scheduler_mutex;
Scheduler::Scheduler(ARM_Interface* cpu_core) : cpu_core(cpu_core) {} Scheduler::Scheduler(Core::ARM_Interface* cpu_core) : cpu_core(cpu_core) {}
Scheduler::~Scheduler() { Scheduler::~Scheduler() {
for (auto& thread : thread_list) { for (auto& thread : thread_list) {

View File

@ -11,13 +11,15 @@
#include "core/hle/kernel/object.h" #include "core/hle/kernel/object.h"
#include "core/hle/kernel/thread.h" #include "core/hle/kernel/thread.h"
namespace Core {
class ARM_Interface; class ARM_Interface;
}
namespace Kernel { namespace Kernel {
class Scheduler final { class Scheduler final {
public: public:
explicit Scheduler(ARM_Interface* cpu_core); explicit Scheduler(Core::ARM_Interface* cpu_core);
~Scheduler(); ~Scheduler();
/// Returns whether there are any threads that are ready to run. /// Returns whether there are any threads that are ready to run.
@ -70,7 +72,7 @@ private:
SharedPtr<Thread> current_thread = nullptr; SharedPtr<Thread> current_thread = nullptr;
ARM_Interface* cpu_core; Core::ARM_Interface* cpu_core;
static std::mutex scheduler_mutex; static std::mutex scheduler_mutex;
}; };

View File

@ -283,9 +283,9 @@ static std::tuple<std::size_t, std::size_t, bool> GetFreeThreadLocalSlot(
* @param entry_point Address of entry point for execution * @param entry_point Address of entry point for execution
* @param arg User argument for thread * @param arg User argument for thread
*/ */
static void ResetThreadContext(ARM_Interface::ThreadContext& context, VAddr stack_top, static void ResetThreadContext(Core::ARM_Interface::ThreadContext& context, VAddr stack_top,
VAddr entry_point, u64 arg) { VAddr entry_point, u64 arg) {
memset(&context, 0, sizeof(ARM_Interface::ThreadContext)); memset(&context, 0, sizeof(Core::ARM_Interface::ThreadContext));
context.cpu_registers[0] = arg; context.cpu_registers[0] = arg;
context.pc = entry_point; context.pc = entry_point;

View File

@ -204,7 +204,7 @@ public:
return status == ThreadStatus::WaitSynchAll; return status == ThreadStatus::WaitSynchAll;
} }
ARM_Interface::ThreadContext context; Core::ARM_Interface::ThreadContext context;
u32 thread_id; u32 thread_id;