summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2021-10-15 00:14:40 +0200
committerMorph <39850852+Morph1984@users.noreply.github.com>2021-10-15 23:34:49 +0200
commit17763a44d5426f7a3e52d6d4aebc26afb1d0ce65 (patch)
tree71f31a3363f0412514277890275c973801583fec /src/core
parentyuzu_cmd: Remove remaining static system instances (diff)
downloadyuzu-17763a44d5426f7a3e52d6d4aebc26afb1d0ce65.tar
yuzu-17763a44d5426f7a3e52d6d4aebc26afb1d0ce65.tar.gz
yuzu-17763a44d5426f7a3e52d6d4aebc26afb1d0ce65.tar.bz2
yuzu-17763a44d5426f7a3e52d6d4aebc26afb1d0ce65.tar.lz
yuzu-17763a44d5426f7a3e52d6d4aebc26afb1d0ce65.tar.xz
yuzu-17763a44d5426f7a3e52d6d4aebc26afb1d0ce65.tar.zst
yuzu-17763a44d5426f7a3e52d6d4aebc26afb1d0ce65.zip
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core.cpp49
-rw-r--r--src/core/core.h39
2 files changed, 45 insertions, 43 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index ae1d56b27..3532839df 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -139,8 +139,8 @@ struct System::Impl {
: kernel{system}, fs_controller{system}, memory{system},
cpu_manager{system}, reporter{system}, applet_manager{system}, time_manager{system} {}
- ResultStatus Run() {
- status = ResultStatus::Success;
+ SystemResultStatus Run() {
+ status = SystemResultStatus::Success;
kernel.Suspend(false);
core_timing.SyncPause(false);
@@ -149,8 +149,8 @@ struct System::Impl {
return status;
}
- ResultStatus Pause() {
- status = ResultStatus::Success;
+ SystemResultStatus Pause() {
+ status = SystemResultStatus::Success;
core_timing.SyncPause(true);
kernel.Suspend(true);
@@ -159,7 +159,7 @@ struct System::Impl {
return status;
}
- ResultStatus Init(System& system, Frontend::EmuWindow& emu_window) {
+ SystemResultStatus Init(System& system, Frontend::EmuWindow& emu_window) {
LOG_DEBUG(Core, "initialized OK");
device_memory = std::make_unique<Core::DeviceMemory>();
@@ -197,7 +197,7 @@ struct System::Impl {
gpu_core = VideoCore::CreateGPU(emu_window, system);
if (!gpu_core) {
- return ResultStatus::ErrorVideoCore;
+ return SystemResultStatus::ErrorVideoCore;
}
service_manager = std::make_shared<Service::SM::ServiceManager>(kernel);
@@ -217,21 +217,22 @@ struct System::Impl {
LOG_DEBUG(Core, "Initialized OK");
- return ResultStatus::Success;
+ return SystemResultStatus::Success;
}
- ResultStatus Load(System& system, Frontend::EmuWindow& emu_window, const std::string& filepath,
- u64 program_id, std::size_t program_index) {
+ SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window,
+ const std::string& filepath, u64 program_id,
+ std::size_t program_index) {
app_loader = Loader::GetLoader(system, GetGameFileFromPath(virtual_filesystem, filepath),
program_id, program_index);
if (!app_loader) {
LOG_CRITICAL(Core, "Failed to obtain loader for {}!", filepath);
- return ResultStatus::ErrorGetLoader;
+ return SystemResultStatus::ErrorGetLoader;
}
- ResultStatus init_result{Init(system, emu_window)};
- if (init_result != ResultStatus::Success) {
+ SystemResultStatus init_result{Init(system, emu_window)};
+ if (init_result != SystemResultStatus::Success) {
LOG_CRITICAL(Core, "Failed to initialize system (Error {})!",
static_cast<int>(init_result));
Shutdown();
@@ -249,8 +250,8 @@ struct System::Impl {
LOG_CRITICAL(Core, "Failed to load ROM (Error {})!", load_result);
Shutdown();
- return static_cast<ResultStatus>(static_cast<u32>(ResultStatus::ErrorLoader) +
- static_cast<u32>(load_result));
+ return static_cast<SystemResultStatus>(
+ static_cast<u32>(SystemResultStatus::ErrorLoader) + static_cast<u32>(load_result));
}
AddGlueRegistrationForProcess(*app_loader, *main_process);
kernel.MakeCurrentProcess(main_process.get());
@@ -282,7 +283,7 @@ struct System::Impl {
GetAndResetPerfStats();
perf_stats->BeginSystemFrame();
- status = ResultStatus::Success;
+ status = SystemResultStatus::Success;
return status;
}
@@ -355,7 +356,7 @@ struct System::Impl {
arp_manager.Register(launch.title_id, launch, std::move(nacp_data));
}
- void SetStatus(ResultStatus new_status, const char* details = nullptr) {
+ void SetStatus(SystemResultStatus new_status, const char* details = nullptr) {
status = new_status;
if (details) {
status_details = details;
@@ -411,7 +412,7 @@ struct System::Impl {
/// Network instance
Network::NetworkInstance network_instance;
- ResultStatus status = ResultStatus::Success;
+ SystemResultStatus status = SystemResultStatus::Success;
std::string status_details = "";
std::unique_ptr<Core::PerfStats> perf_stats;
@@ -439,16 +440,16 @@ const CpuManager& System::GetCpuManager() const {
return impl->cpu_manager;
}
-System::ResultStatus System::Run() {
+SystemResultStatus System::Run() {
return impl->Run();
}
-System::ResultStatus System::Pause() {
+SystemResultStatus System::Pause() {
return impl->Pause();
}
-System::ResultStatus System::SingleStep() {
- return ResultStatus::Success;
+SystemResultStatus System::SingleStep() {
+ return SystemResultStatus::Success;
}
void System::InvalidateCpuInstructionCaches() {
@@ -463,8 +464,8 @@ void System::Shutdown() {
impl->Shutdown();
}
-System::ResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::string& filepath,
- u64 program_id, std::size_t program_index) {
+SystemResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::string& filepath,
+ u64 program_id, std::size_t program_index) {
return impl->Load(*this, emu_window, filepath, program_id, program_index);
}
@@ -624,7 +625,7 @@ Loader::ResultStatus System::GetGameName(std::string& out) const {
return impl->GetGameName(out);
}
-void System::SetStatus(ResultStatus new_status, const char* details) {
+void System::SetStatus(SystemResultStatus new_status, const char* details) {
impl->SetStatus(new_status, details);
}
diff --git a/src/core/core.h b/src/core/core.h
index cae578c69..c1234ef77 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -104,6 +104,18 @@ struct PerfStatsResults;
FileSys::VirtualFile GetGameFileFromPath(const FileSys::VirtualFilesystem& vfs,
const std::string& path);
+/// Enumeration representing the return values of the System Initialize and Load process.
+enum class SystemResultStatus : u32 {
+ Success, ///< Succeeded
+ ErrorNotInitialized, ///< Error trying to use core prior to initialization
+ ErrorGetLoader, ///< Error finding the correct application loader
+ ErrorSystemFiles, ///< Error in finding system files
+ ErrorSharedFont, ///< Error in finding shared font
+ ErrorVideoCore, ///< Error in the video core
+ ErrorUnknown, ///< Any other error
+ ErrorLoader, ///< The base for loader errors (too many to repeat)
+};
+
class System {
public:
using CurrentBuildProcessID = std::array<u8, 0x20>;
@@ -118,35 +130,23 @@ public:
System(System&&) = delete;
System& operator=(System&&) = delete;
- /// Enumeration representing the return values of the System Initialize and Load process.
- enum class ResultStatus : u32 {
- Success, ///< Succeeded
- ErrorNotInitialized, ///< Error trying to use core prior to initialization
- ErrorGetLoader, ///< Error finding the correct application loader
- ErrorSystemFiles, ///< Error in finding system files
- ErrorSharedFont, ///< Error in finding shared font
- ErrorVideoCore, ///< Error in the video core
- ErrorUnknown, ///< Any other error
- ErrorLoader, ///< The base for loader errors (too many to repeat)
- };
-
/**
* Run the OS and Application
* This function will start emulation and run the relevant devices
*/
- [[nodiscard]] ResultStatus Run();
+ [[nodiscard]] SystemResultStatus Run();
/**
* Pause the OS and Application
* This function will pause emulation and stop the relevant devices
*/
- [[nodiscard]] ResultStatus Pause();
+ [[nodiscard]] SystemResultStatus Pause();
/**
* Step the CPU one instruction
* @return Result status, indicating whether or not the operation succeeded.
*/
- [[nodiscard]] ResultStatus SingleStep();
+ [[nodiscard]] SystemResultStatus SingleStep();
/**
* Invalidate the CPU instruction caches
@@ -166,10 +166,11 @@ public:
* input.
* @param filepath String path to the executable application to load on the host file system.
* @param program_index Specifies the index within the container of the program to launch.
- * @returns ResultStatus code, indicating if the operation succeeded.
+ * @returns SystemResultStatus code, indicating if the operation succeeded.
*/
- [[nodiscard]] ResultStatus Load(Frontend::EmuWindow& emu_window, const std::string& filepath,
- u64 program_id = 0, std::size_t program_index = 0);
+ [[nodiscard]] SystemResultStatus Load(Frontend::EmuWindow& emu_window,
+ const std::string& filepath, u64 program_id = 0,
+ std::size_t program_index = 0);
/**
* Indicates if the emulated system is powered on (all subsystems initialized and able to run an
@@ -295,7 +296,7 @@ public:
/// Gets the name of the current game
[[nodiscard]] Loader::ResultStatus GetGameName(std::string& out) const;
- void SetStatus(ResultStatus new_status, const char* details);
+ void SetStatus(SystemResultStatus new_status, const char* details);
[[nodiscard]] const std::string& GetStatusDetails() const;