summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/CMakeLists.txt6
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.cpp4
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.h2
-rw-r--r--src/core/file_sys/partition_filesystem.cpp6
-rw-r--r--src/core/hle/ipc_helpers.h34
-rw-r--r--src/core/hle/kernel/hle_ipc.h2
-rw-r--r--src/core/hle/kernel/mutex.cpp2
-rw-r--r--src/core/hle/kernel/svc.cpp11
-rw-r--r--src/core/hle/service/acc/acc.cpp2
-rw-r--r--src/core/hle/service/apm/interface.h3
-rw-r--r--src/core/hle/service/friend/friend.cpp10
-rw-r--r--src/core/hle/service/friend/friend_u.cpp18
-rw-r--r--src/core/hle/service/friend/friend_u.h16
-rw-r--r--src/core/hle/service/friend/interface.cpp (renamed from src/core/hle/service/friend/friend_a.cpp)9
-rw-r--r--src/core/hle/service/friend/interface.h (renamed from src/core/hle/service/friend/friend_a.h)4
-rw-r--r--src/core/hle/service/service.h2
-rw-r--r--src/core/loader/deconstructed_rom_directory.cpp29
-rw-r--r--src/core/loader/elf.cpp2
-rw-r--r--src/core/loader/loader.h2
-rw-r--r--src/core/tracer/recorder.h2
20 files changed, 53 insertions, 113 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 6b6efbc00..b7d52babc 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -146,10 +146,8 @@ add_library(core STATIC
hle/service/filesystem/fsp_srv.h
hle/service/friend/friend.cpp
hle/service/friend/friend.h
- hle/service/friend/friend_a.cpp
- hle/service/friend/friend_a.h
- hle/service/friend/friend_u.cpp
- hle/service/friend/friend_u.h
+ hle/service/friend/interface.cpp
+ hle/service/friend/interface.h
hle/service/hid/hid.cpp
hle/service/hid/hid.h
hle/service/lm/lm.cpp
diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp
index d23adb28a..57b8634b9 100644
--- a/src/core/arm/dynarmic/arm_dynarmic.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic.cpp
@@ -102,8 +102,8 @@ public:
u64 tpidr_el0 = 0;
};
-std::unique_ptr<Dynarmic::A64::Jit> ARM_Dynarmic::MakeJit() {
- const auto page_table = Core::CurrentProcess()->vm_manager.page_table.pointers.data();
+std::unique_ptr<Dynarmic::A64::Jit> ARM_Dynarmic::MakeJit() const {
+ auto** const page_table = Core::CurrentProcess()->vm_manager.page_table.pointers.data();
Dynarmic::A64::UserConfig config;
diff --git a/src/core/arm/dynarmic/arm_dynarmic.h b/src/core/arm/dynarmic/arm_dynarmic.h
index 350f61fd2..14c072601 100644
--- a/src/core/arm/dynarmic/arm_dynarmic.h
+++ b/src/core/arm/dynarmic/arm_dynarmic.h
@@ -50,7 +50,7 @@ public:
void PageTableChanged() override;
private:
- std::unique_ptr<Dynarmic::A64::Jit> MakeJit();
+ std::unique_ptr<Dynarmic::A64::Jit> MakeJit() const;
friend class ARM_Dynarmic_Callbacks;
std::unique_ptr<ARM_Dynarmic_Callbacks> cb;
diff --git a/src/core/file_sys/partition_filesystem.cpp b/src/core/file_sys/partition_filesystem.cpp
index 8d2bd9f6b..521e21078 100644
--- a/src/core/file_sys/partition_filesystem.cpp
+++ b/src/core/file_sys/partition_filesystem.cpp
@@ -65,8 +65,8 @@ PartitionFilesystem::PartitionFilesystem(std::shared_ptr<VfsFile> file) {
std::string name(
reinterpret_cast<const char*>(&file_data[strtab_offset + entry.strtab_offset]));
- pfs_files.emplace_back(
- std::make_shared<OffsetVfsFile>(file, entry.size, content_offset + entry.offset, name));
+ pfs_files.emplace_back(std::make_shared<OffsetVfsFile>(
+ file, entry.size, content_offset + entry.offset, std::move(name)));
}
status = Loader::ResultStatus::Success;
@@ -109,7 +109,7 @@ bool PartitionFilesystem::ReplaceFileWithSubdirectory(VirtualFile file, VirtualD
return false;
const std::ptrdiff_t offset = std::distance(pfs_files.begin(), iter);
- pfs_files[offset] = pfs_files.back();
+ pfs_files[offset] = std::move(pfs_files.back());
pfs_files.pop_back();
pfs_dirs.emplace_back(std::move(dir));
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h
index ac1a633ba..7fb0da408 100644
--- a/src/core/hle/ipc_helpers.h
+++ b/src/core/hle/ipc_helpers.h
@@ -25,9 +25,9 @@ protected:
ptrdiff_t index = 0;
public:
- RequestHelperBase(u32* command_buffer) : cmdbuf(command_buffer) {}
+ explicit RequestHelperBase(u32* command_buffer) : cmdbuf(command_buffer) {}
- RequestHelperBase(Kernel::HLERequestContext& context)
+ explicit RequestHelperBase(Kernel::HLERequestContext& context)
: context(&context), cmdbuf(context.CommandBuffer()) {}
void Skip(unsigned size_in_words, bool set_to_null) {
@@ -56,13 +56,6 @@ public:
class ResponseBuilder : public RequestHelperBase {
public:
- ResponseBuilder(u32* command_buffer) : RequestHelperBase(command_buffer) {}
-
- u32 normal_params_size{};
- u32 num_handles_to_copy{};
- u32 num_objects_to_move{}; ///< Domain objects or move handles, context dependent
- std::ptrdiff_t datapayload_index{};
-
/// Flags used for customizing the behavior of ResponseBuilder
enum class Flags : u32 {
None = 0,
@@ -71,9 +64,11 @@ public:
AlwaysMoveHandles = 1,
};
- ResponseBuilder(Kernel::HLERequestContext& context, u32 normal_params_size,
- u32 num_handles_to_copy = 0, u32 num_objects_to_move = 0,
- Flags flags = Flags::None)
+ explicit ResponseBuilder(u32* command_buffer) : RequestHelperBase(command_buffer) {}
+
+ explicit ResponseBuilder(Kernel::HLERequestContext& context, u32 normal_params_size,
+ u32 num_handles_to_copy = 0, u32 num_objects_to_move = 0,
+ Flags flags = Flags::None)
: RequestHelperBase(context), normal_params_size(normal_params_size),
num_handles_to_copy(num_handles_to_copy), num_objects_to_move(num_objects_to_move) {
@@ -206,6 +201,12 @@ public:
template <typename... O>
void PushCopyObjects(Kernel::SharedPtr<O>... pointers);
+
+private:
+ u32 normal_params_size{};
+ u32 num_handles_to_copy{};
+ u32 num_objects_to_move{}; ///< Domain objects or move handles, context dependent
+ std::ptrdiff_t datapayload_index{};
};
/// Push ///
@@ -273,9 +274,9 @@ inline void ResponseBuilder::PushMoveObjects(Kernel::SharedPtr<O>... pointers) {
class RequestParser : public RequestHelperBase {
public:
- RequestParser(u32* command_buffer) : RequestHelperBase(command_buffer) {}
+ explicit RequestParser(u32* command_buffer) : RequestHelperBase(command_buffer) {}
- RequestParser(Kernel::HLERequestContext& context) : RequestHelperBase(context) {
+ explicit RequestParser(Kernel::HLERequestContext& context) : RequestHelperBase(context) {
ASSERT_MSG(context.GetDataPayloadOffset(), "context is incomplete");
Skip(context.GetDataPayloadOffset(), false);
// Skip the u64 command id, it's already stored in the context
@@ -285,8 +286,9 @@ public:
ResponseBuilder MakeBuilder(u32 normal_params_size, u32 num_handles_to_copy,
u32 num_handles_to_move,
- ResponseBuilder::Flags flags = ResponseBuilder::Flags::None) {
- return {*context, normal_params_size, num_handles_to_copy, num_handles_to_move, flags};
+ ResponseBuilder::Flags flags = ResponseBuilder::Flags::None) const {
+ return ResponseBuilder{*context, normal_params_size, num_handles_to_copy,
+ num_handles_to_move, flags};
}
template <typename T>
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 01b805df8..84727f748 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -91,7 +91,7 @@ protected:
*/
class HLERequestContext {
public:
- HLERequestContext(SharedPtr<Kernel::ServerSession> session);
+ explicit HLERequestContext(SharedPtr<ServerSession> session);
~HLERequestContext();
/// Returns a pointer to the IPC command buffer for this request.
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp
index 3f1de3258..feb7b88d2 100644
--- a/src/core/hle/kernel/mutex.cpp
+++ b/src/core/hle/kernel/mutex.cpp
@@ -19,7 +19,7 @@ namespace Kernel {
/// Returns the number of threads that are waiting for a mutex, and the highest priority one among
/// those.
static std::pair<SharedPtr<Thread>, u32> GetHighestPriorityMutexWaitingThread(
- SharedPtr<Thread> current_thread, VAddr mutex_addr) {
+ const SharedPtr<Thread>& current_thread, VAddr mutex_addr) {
SharedPtr<Thread> highest_priority_thread;
u32 num_waiters = 0;
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 7b41c9cfd..da7cacb57 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -165,11 +165,14 @@ static ResultCode WaitSynchronization(Handle* index, VAddr handles_address, u64
using ObjectPtr = SharedPtr<WaitObject>;
std::vector<ObjectPtr> objects(handle_count);
- for (int i = 0; i < handle_count; ++i) {
- Handle handle = Memory::Read32(handles_address + i * sizeof(Handle));
- auto object = g_handle_table.Get<WaitObject>(handle);
- if (object == nullptr)
+ for (u64 i = 0; i < handle_count; ++i) {
+ const Handle handle = Memory::Read32(handles_address + i * sizeof(Handle));
+ const auto object = g_handle_table.Get<WaitObject>(handle);
+
+ if (object == nullptr) {
return ERR_INVALID_HANDLE;
+ }
+
objects[i] = object;
}
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp
index 3e1c2c0a0..0b158e015 100644
--- a/src/core/hle/service/acc/acc.cpp
+++ b/src/core/hle/service/acc/acc.cpp
@@ -35,7 +35,7 @@ static constexpr u128 DEFAULT_USER_ID{1ull, 0ull};
class IProfile final : public ServiceFramework<IProfile> {
public:
- IProfile(u128 user_id) : ServiceFramework("IProfile"), user_id(user_id) {
+ explicit IProfile(u128 user_id) : ServiceFramework("IProfile"), user_id(user_id) {
static const FunctionInfo functions[] = {
{0, nullptr, "Get"},
{1, &IProfile::GetBase, "GetBase"},
diff --git a/src/core/hle/service/apm/interface.h b/src/core/hle/service/apm/interface.h
index 85258a666..fa68c7d93 100644
--- a/src/core/hle/service/apm/interface.h
+++ b/src/core/hle/service/apm/interface.h
@@ -19,7 +19,4 @@ private:
std::shared_ptr<Module> apm;
};
-/// Registers all AM services with the specified service manager.
-void InstallInterfaces(SM::ServiceManager& service_manager);
-
} // namespace Service::APM
diff --git a/src/core/hle/service/friend/friend.cpp b/src/core/hle/service/friend/friend.cpp
index c98a46e05..fb4d89068 100644
--- a/src/core/hle/service/friend/friend.cpp
+++ b/src/core/hle/service/friend/friend.cpp
@@ -5,8 +5,7 @@
#include "common/logging/log.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/service/friend/friend.h"
-#include "core/hle/service/friend/friend_a.h"
-#include "core/hle/service/friend/friend_u.h"
+#include "core/hle/service/friend/interface.h"
namespace Service::Friend {
@@ -21,8 +20,11 @@ Module::Interface::Interface(std::shared_ptr<Module> module, const char* name)
void InstallInterfaces(SM::ServiceManager& service_manager) {
auto module = std::make_shared<Module>();
- std::make_shared<Friend_A>(module)->InstallAsService(service_manager);
- std::make_shared<Friend_U>(module)->InstallAsService(service_manager);
+ std::make_shared<Friend>(module, "friend:a")->InstallAsService(service_manager);
+ std::make_shared<Friend>(module, "friend:m")->InstallAsService(service_manager);
+ std::make_shared<Friend>(module, "friend:s")->InstallAsService(service_manager);
+ std::make_shared<Friend>(module, "friend:u")->InstallAsService(service_manager);
+ std::make_shared<Friend>(module, "friend:v")->InstallAsService(service_manager);
}
} // namespace Service::Friend
diff --git a/src/core/hle/service/friend/friend_u.cpp b/src/core/hle/service/friend/friend_u.cpp
deleted file mode 100644
index 90b30883f..000000000
--- a/src/core/hle/service/friend/friend_u.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2018 yuzu emulator team
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#include "core/hle/service/friend/friend_u.h"
-
-namespace Service::Friend {
-
-Friend_U::Friend_U(std::shared_ptr<Module> module)
- : Module::Interface(std::move(module), "friend:u") {
- static const FunctionInfo functions[] = {
- {0, &Friend_U::CreateFriendService, "CreateFriendService"},
- {1, nullptr, "CreateNotificationService"},
- };
- RegisterHandlers(functions);
-}
-
-} // namespace Service::Friend
diff --git a/src/core/hle/service/friend/friend_u.h b/src/core/hle/service/friend/friend_u.h
deleted file mode 100644
index 0d953d807..000000000
--- a/src/core/hle/service/friend/friend_u.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2018 yuzu emulator team
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include "core/hle/service/friend/friend.h"
-
-namespace Service::Friend {
-
-class Friend_U final : public Module::Interface {
-public:
- explicit Friend_U(std::shared_ptr<Module> module);
-};
-
-} // namespace Service::Friend
diff --git a/src/core/hle/service/friend/friend_a.cpp b/src/core/hle/service/friend/interface.cpp
index a2cc81926..27c6a09e2 100644
--- a/src/core/hle/service/friend/friend_a.cpp
+++ b/src/core/hle/service/friend/interface.cpp
@@ -2,15 +2,16 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "core/hle/service/friend/friend_a.h"
+#include "core/hle/service/friend/interface.h"
namespace Service::Friend {
-Friend_A::Friend_A(std::shared_ptr<Module> module)
- : Module::Interface(std::move(module), "friend:a") {
+Friend::Friend(std::shared_ptr<Module> module, const char* name)
+ : Interface(std::move(module), name) {
static const FunctionInfo functions[] = {
- {0, &Friend_A::CreateFriendService, "CreateFriendService"},
+ {0, &Friend::CreateFriendService, "CreateFriendService"},
{1, nullptr, "CreateNotificationService"},
+ {2, nullptr, "CreateDaemonSuspendSessionService"},
};
RegisterHandlers(functions);
}
diff --git a/src/core/hle/service/friend/friend_a.h b/src/core/hle/service/friend/interface.h
index 81257583b..89dae8471 100644
--- a/src/core/hle/service/friend/friend_a.h
+++ b/src/core/hle/service/friend/interface.h
@@ -8,9 +8,9 @@
namespace Service::Friend {
-class Friend_A final : public Module::Interface {
+class Friend final : public Module::Interface {
public:
- explicit Friend_A(std::shared_ptr<Module> module);
+ explicit Friend(std::shared_ptr<Module> module, const char* name);
};
} // namespace Service::Friend
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h
index fee841d46..180f22703 100644
--- a/src/core/hle/service/service.h
+++ b/src/core/hle/service/service.h
@@ -146,7 +146,7 @@ protected:
* @param max_sessions Maximum number of sessions that can be
* connected to this service at the same time.
*/
- ServiceFramework(const char* service_name, u32 max_sessions = DefaultMaxSessions)
+ explicit ServiceFramework(const char* service_name, u32 max_sessions = DefaultMaxSessions)
: ServiceFrameworkBase(service_name, max_sessions, Invoker) {}
/// Registers handlers in the service.
diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp
index 18bd62a08..b0277a875 100644
--- a/src/core/loader/deconstructed_rom_directory.cpp
+++ b/src/core/loader/deconstructed_rom_directory.cpp
@@ -6,7 +6,6 @@
#include "common/common_funcs.h"
#include "common/file_util.h"
#include "common/logging/log.h"
-#include "common/string_util.h"
#include "core/file_sys/content_archive.h"
#include "core/gdbstub/gdbstub.h"
#include "core/hle/kernel/process.h"
@@ -18,34 +17,6 @@
namespace Loader {
-static std::string FindRomFS(const std::string& directory) {
- std::string filepath_romfs;
- const auto callback = [&filepath_romfs](u64*, const std::string& directory,
- const std::string& virtual_name) -> bool {
- const std::string physical_name = directory + virtual_name;
- if (FileUtil::IsDirectory(physical_name)) {
- // Skip directories
- return true;
- }
-
- // Verify extension
- const std::string extension = physical_name.substr(physical_name.find_last_of(".") + 1);
- if (Common::ToLower(extension) != "romfs") {
- return true;
- }
-
- // Found it - we are done
- filepath_romfs = std::move(physical_name);
- return false;
- };
-
- // Search the specified directory recursively, looking for the first .romfs file, which will
- // be used for the RomFS
- FileUtil::ForeachDirectoryEntry(nullptr, directory, callback);
-
- return filepath_romfs;
-}
-
AppLoader_DeconstructedRomDirectory::AppLoader_DeconstructedRomDirectory(FileSys::VirtualFile file)
: AppLoader(std::move(file)) {}
diff --git a/src/core/loader/elf.cpp b/src/core/loader/elf.cpp
index 4bfd5f536..352938dcb 100644
--- a/src/core/loader/elf.cpp
+++ b/src/core/loader/elf.cpp
@@ -190,7 +190,7 @@ private:
u32 entryPoint;
public:
- ElfReader(void* ptr);
+ explicit ElfReader(void* ptr);
u32 Read32(int off) const {
return base32[off >> 2];
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h
index 6f517ca8c..fbf11e5d0 100644
--- a/src/core/loader/loader.h
+++ b/src/core/loader/loader.h
@@ -79,7 +79,7 @@ enum class ResultStatus {
/// Interface for loading an application
class AppLoader : NonCopyable {
public:
- AppLoader(FileSys::VirtualFile file) : file(std::move(file)) {}
+ explicit AppLoader(FileSys::VirtualFile file) : file(std::move(file)) {}
virtual ~AppLoader() {}
/**
diff --git a/src/core/tracer/recorder.h b/src/core/tracer/recorder.h
index 629c2f6d2..e1cefd5fe 100644
--- a/src/core/tracer/recorder.h
+++ b/src/core/tracer/recorder.h
@@ -32,7 +32,7 @@ public:
* Recorder constructor
* @param initial_state Initial recorder state
*/
- Recorder(const InitialState& initial_state);
+ explicit Recorder(const InitialState& initial_state);
/// Finish recording of this Citrace and save it using the given filename.
void Finish(const std::string& filename);