From 4a587b81b285bcd41246329e89591be7cfe37c8a Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 31 Aug 2018 12:21:34 -0400 Subject: core/core: Replace includes with forward declarations where applicable The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers. --- src/core/core.h | 56 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 21 deletions(-) (limited to 'src/core/core.h') diff --git a/src/core/core.h b/src/core/core.h index 984e8f94c..eee1fecc1 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -4,41 +4,55 @@ #pragma once -#include -#include +#include #include #include -#include + #include "common/common_types.h" -#include "core/arm/exclusive_monitor.h" -#include "core/core_cpu.h" -#include "core/hle/kernel/kernel.h" #include "core/hle/kernel/object.h" -#include "core/hle/kernel/scheduler.h" -#include "core/loader/loader.h" -#include "core/memory.h" -#include "core/perf_stats.h" -#include "core/telemetry_session.h" -#include "file_sys/vfs_real.h" -#include "hle/service/filesystem/filesystem.h" -#include "video_core/debug_utils/debug_utils.h" -#include "video_core/gpu.h" namespace Core::Frontend { class EmuWindow; -} +} // namespace Core::Frontend + +namespace FileSys { +class VfsFilesystem; +} // namespace FileSys + +namespace Kernel { +class KernelCore; +class Process; +class Scheduler; +} // namespace Kernel + +namespace Loader { +class AppLoader; +enum class ResultStatus : u16; +} // namespace Loader namespace Service::SM { class ServiceManager; -} +} // namespace Service::SM + +namespace Tegra { +class DebugContext; +class GPU; +} // namespace Tegra namespace VideoCore { class RendererBase; -} +} // namespace VideoCore namespace Core { class ARM_Interface; +class Cpu; +class ExclusiveMonitor; +class FrameLimiter; +class PerfStats; +class TelemetrySession; + +struct PerfStatsResults; class System { public: @@ -125,7 +139,7 @@ public: void PrepareReschedule(); /// Gets and resets core performance statistics - PerfStats::Results GetAndResetPerfStats(); + PerfStatsResults GetAndResetPerfStats(); /// Gets an ARM interface to the CPU core that is currently running ARM_Interface& CurrentArmInterface(); @@ -197,9 +211,9 @@ public: std::shared_ptr GetGPUDebugContext() const; - void SetFilesystem(FileSys::VirtualFilesystem vfs); + void SetFilesystem(std::shared_ptr vfs); - FileSys::VirtualFilesystem GetFilesystem() const; + std::shared_ptr GetFilesystem() const; private: System(); -- cgit v1.2.3