From 83a8975cb89b908b4737d647a210c19775f25ed7 Mon Sep 17 00:00:00 2001 From: Subv Date: Thu, 26 Feb 2015 21:13:08 -0500 Subject: Services: Moved the PTM and APT services to their own folder This coincidentally fixes an issue about the PTM service failing to create its SharedExtSaveData archive due to the FS service not being initialized by the time the creating code runs. Ideally I'd like to move each process to its own folder, and have a single file per process that registers the service classes, which would be in their own files inside that folder. Then each service class would just call functions from the process to complete the commands. --- src/core/hle/service/fs/archive.cpp | 4 ++++ src/core/hle/service/fs/fs_user.cpp | 4 ++-- src/core/hle/service/fs/fs_user.h | 7 ++----- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'src/core/hle/service/fs') diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp index c5020cb24..9da2e7aa2 100644 --- a/src/core/hle/service/fs/archive.cpp +++ b/src/core/hle/service/fs/archive.cpp @@ -20,7 +20,9 @@ #include "core/file_sys/archive_sdmc.h" #include "core/file_sys/archive_systemsavedata.h" #include "core/file_sys/directory_backend.h" +#include "core/hle/service/service.h" #include "core/hle/service/fs/archive.h" +#include "core/hle/service/fs/fs_user.h" #include "core/hle/result.h" // Specializes std::hash for ArchiveIdCode, so that we can use it in std::unordered_map. @@ -419,6 +421,8 @@ ResultCode CreateExtSaveData(u32 high, u32 low) { void ArchiveInit() { next_handle = 1; + AddService(new FS::Interface); + // TODO(Subv): Add the other archive types (see here for the known types: // http://3dbrew.org/wiki/FS:OpenArchive#Archive_idcodes). diff --git a/src/core/hle/service/fs/fs_user.cpp b/src/core/hle/service/fs/fs_user.cpp index 2c1302208..eb312496e 100644 --- a/src/core/hle/service/fs/fs_user.cpp +++ b/src/core/hle/service/fs/fs_user.cpp @@ -520,7 +520,7 @@ static void CardSlotIsInserted(Service::Interface* self) { LOG_WARNING(Service_FS, "(STUBBED) called"); } -const FSUserInterface::FunctionInfo FunctionTable[] = { +const Interface::FunctionInfo FunctionTable[] = { {0x000100C6, nullptr, "Dummy1"}, {0x040100C4, nullptr, "Control"}, {0x08010002, Initialize, "Initialize"}, @@ -614,7 +614,7 @@ const FSUserInterface::FunctionInfo FunctionTable[] = { //////////////////////////////////////////////////////////////////////////////////////////////////// // Interface class -FSUserInterface::FSUserInterface() { +Interface::Interface() { Register(FunctionTable); } diff --git a/src/core/hle/service/fs/fs_user.h b/src/core/hle/service/fs/fs_user.h index 2d896dd5f..bb6ab195e 100644 --- a/src/core/hle/service/fs/fs_user.h +++ b/src/core/hle/service/fs/fs_user.h @@ -6,16 +6,13 @@ #include "core/hle/service/service.h" -//////////////////////////////////////////////////////////////////////////////////////////////////// -// Namespace FS_User - namespace Service { namespace FS { /// Interface to "fs:USER" service -class FSUserInterface : public Service::Interface { +class Interface : public Service::Interface { public: - FSUserInterface(); + Interface(); std::string GetPortName() const override { return "fs:USER"; -- cgit v1.2.3