service: move hle_ipc from kernel
This commit is contained in:
		| @@ -158,7 +158,6 @@ add_library(core STATIC | ||||
|     hid/motion_input.h | ||||
|     hle/api_version.h | ||||
|     hle/ipc.h | ||||
|     hle/ipc_helpers.h | ||||
|     hle/kernel/board/nintendo/nx/k_memory_layout.h | ||||
|     hle/kernel/board/nintendo/nx/k_system_control.cpp | ||||
|     hle/kernel/board/nintendo/nx/k_system_control.h | ||||
| @@ -168,8 +167,6 @@ add_library(core STATIC | ||||
|     hle/kernel/svc_results.h | ||||
|     hle/kernel/global_scheduler_context.cpp | ||||
|     hle/kernel/global_scheduler_context.h | ||||
|     hle/kernel/hle_ipc.cpp | ||||
|     hle/kernel/hle_ipc.h | ||||
|     hle/kernel/init/init_slab_setup.cpp | ||||
|     hle/kernel/init/init_slab_setup.h | ||||
|     hle/kernel/initial_process.h | ||||
| @@ -680,6 +677,9 @@ add_library(core STATIC | ||||
|     hle/service/ptm/ptm.h | ||||
|     hle/service/ptm/ts.cpp | ||||
|     hle/service/ptm/ts.h | ||||
|     hle/service/hle_ipc.cpp | ||||
|     hle/service/hle_ipc.h | ||||
|     hle/service/ipc_helpers.h | ||||
|     hle/service/kernel_helpers.cpp | ||||
|     hle/service/kernel_helpers.h | ||||
|     hle/service/mutex.cpp | ||||
|   | ||||
| @@ -2,7 +2,6 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/scope_exit.h" | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/kernel/k_client_port.h" | ||||
| #include "core/hle/kernel/k_port.h" | ||||
| #include "core/hle/kernel/k_scheduler.h" | ||||
|   | ||||
| @@ -15,7 +15,6 @@ namespace Kernel { | ||||
| class KClientSession; | ||||
| class KernelCore; | ||||
| class KPort; | ||||
| class SessionRequestManager; | ||||
|  | ||||
| class KClientPort final : public KSynchronizationObject { | ||||
|     KERNEL_AUTOOBJECT_TRAITS(KClientPort, KSynchronizationObject); | ||||
|   | ||||
| @@ -2,7 +2,6 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/scope_exit.h" | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/kernel/k_client_session.h" | ||||
| #include "core/hle/kernel/k_server_session.h" | ||||
| #include "core/hle/kernel/k_session.h" | ||||
|   | ||||
| @@ -1,7 +1,6 @@ | ||||
| // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/kernel/k_port.h" | ||||
| #include "core/hle/kernel/k_scheduler.h" | ||||
| #include "core/hle/kernel/svc_results.h" | ||||
|   | ||||
| @@ -10,8 +10,6 @@ | ||||
| #include "common/scope_exit.h" | ||||
| #include "core/core.h" | ||||
| #include "core/core_timing.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/kernel/k_client_port.h" | ||||
| #include "core/hle/kernel/k_handle_table.h" | ||||
| #include "core/hle/kernel/k_process.h" | ||||
| @@ -22,6 +20,8 @@ | ||||
| #include "core/hle/kernel/k_thread.h" | ||||
| #include "core/hle/kernel/k_thread_queue.h" | ||||
| #include "core/hle/kernel/kernel.h" | ||||
| #include "core/hle/service/hle_ipc.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/memory.h" | ||||
|  | ||||
| namespace Kernel { | ||||
| @@ -281,8 +281,8 @@ Result KServerSession::SendReply(bool is_hle) { | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| Result KServerSession::ReceiveRequest(std::shared_ptr<HLERequestContext>* out_context, | ||||
|                                       std::weak_ptr<SessionRequestManager> manager) { | ||||
| Result KServerSession::ReceiveRequest(std::shared_ptr<Service::HLERequestContext>* out_context, | ||||
|                                       std::weak_ptr<Service::SessionRequestManager> manager) { | ||||
|     // Lock the session. | ||||
|     KScopedLightLock lk{m_lock}; | ||||
|  | ||||
| @@ -329,7 +329,8 @@ Result KServerSession::ReceiveRequest(std::shared_ptr<HLERequestContext>* out_co | ||||
|     if (out_context != nullptr) { | ||||
|         // HLE request. | ||||
|         u32* cmd_buf{reinterpret_cast<u32*>(memory.GetPointer(client_message))}; | ||||
|         *out_context = std::make_shared<HLERequestContext>(kernel, memory, this, client_thread); | ||||
|         *out_context = | ||||
|             std::make_shared<Service::HLERequestContext>(kernel, memory, this, client_thread); | ||||
|         (*out_context)->SetSessionRequestManager(manager); | ||||
|         (*out_context) | ||||
|             ->PopulateFromIncomingCommandBuffer(client_thread->GetOwnerProcess()->GetHandleTable(), | ||||
|   | ||||
| @@ -10,18 +10,20 @@ | ||||
|  | ||||
| #include <boost/intrusive/list.hpp> | ||||
|  | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/kernel/k_light_lock.h" | ||||
| #include "core/hle/kernel/k_session_request.h" | ||||
| #include "core/hle/kernel/k_synchronization_object.h" | ||||
| #include "core/hle/result.h" | ||||
|  | ||||
| namespace Service { | ||||
| class HLERequestContext; | ||||
| class SessionRequestManager; | ||||
| } // namespace Service | ||||
|  | ||||
| namespace Kernel { | ||||
|  | ||||
| class HLERequestContext; | ||||
| class KernelCore; | ||||
| class KSession; | ||||
| class SessionRequestManager; | ||||
| class KThread; | ||||
|  | ||||
| class KServerSession final : public KSynchronizationObject, | ||||
| @@ -52,8 +54,8 @@ public: | ||||
|     /// TODO: flesh these out to match the real kernel | ||||
|     Result OnRequest(KSessionRequest* request); | ||||
|     Result SendReply(bool is_hle = false); | ||||
|     Result ReceiveRequest(std::shared_ptr<HLERequestContext>* out_context = nullptr, | ||||
|                           std::weak_ptr<SessionRequestManager> manager = {}); | ||||
|     Result ReceiveRequest(std::shared_ptr<Service::HLERequestContext>* out_context = nullptr, | ||||
|                           std::weak_ptr<Service::SessionRequestManager> manager = {}); | ||||
|  | ||||
|     Result SendReplyHLE() { | ||||
|         return SendReply(true); | ||||
|   | ||||
| @@ -15,7 +15,6 @@ | ||||
| #include "core/core_timing.h" | ||||
| #include "core/file_sys/control_metadata.h" | ||||
| #include "core/file_sys/patch_manager.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/acc/acc.h" | ||||
| #include "core/hle/service/acc/acc_aa.h" | ||||
| #include "core/hle/service/acc/acc_su.h" | ||||
| @@ -25,6 +24,7 @@ | ||||
| #include "core/hle/service/acc/errors.h" | ||||
| #include "core/hle/service/acc/profile_manager.h" | ||||
| #include "core/hle/service/glue/glue_manager.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/loader/loader.h" | ||||
|  | ||||
| @@ -295,7 +295,7 @@ public: | ||||
|     } | ||||
|  | ||||
| protected: | ||||
|     void Get(Kernel::HLERequestContext& ctx) { | ||||
|     void Get(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "called user_id=0x{}", user_id.RawString()); | ||||
|         ProfileBase profile_base{}; | ||||
|         UserData data{}; | ||||
| @@ -312,7 +312,7 @@ protected: | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void GetBase(Kernel::HLERequestContext& ctx) { | ||||
|     void GetBase(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "called user_id=0x{}", user_id.RawString()); | ||||
|         ProfileBase profile_base{}; | ||||
|         if (profile_manager.GetProfileBase(user_id, profile_base)) { | ||||
| @@ -326,7 +326,7 @@ protected: | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void LoadImage(Kernel::HLERequestContext& ctx) { | ||||
|     void LoadImage(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -353,7 +353,7 @@ protected: | ||||
|         rb.Push<u32>(size); | ||||
|     } | ||||
|  | ||||
|     void GetImageSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetImageSize(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(ResultSuccess); | ||||
| @@ -370,7 +370,7 @@ protected: | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void Store(Kernel::HLERequestContext& ctx) { | ||||
|     void Store(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto base = rp.PopRaw<ProfileBase>(); | ||||
|  | ||||
| @@ -402,7 +402,7 @@ protected: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void StoreWithImage(Kernel::HLERequestContext& ctx) { | ||||
|     void StoreWithImage(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto base = rp.PopRaw<ProfileBase>(); | ||||
|  | ||||
| @@ -499,7 +499,7 @@ public: | ||||
|     } | ||||
|     ~EnsureTokenIdCacheAsyncInterface() = default; | ||||
|  | ||||
|     void LoadIdTokenCache(Kernel::HLERequestContext& ctx) { | ||||
|     void LoadIdTokenCache(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -542,14 +542,14 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CheckAvailability(Kernel::HLERequestContext& ctx) { | ||||
|     void CheckAvailability(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(ResultSuccess); | ||||
|         rb.Push(false); // TODO: Check when this is supposed to return true and when not | ||||
|     } | ||||
|  | ||||
|     void GetAccountId(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAccountId(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 4}; | ||||
| @@ -557,7 +557,7 @@ private: | ||||
|         rb.PushRaw<u64>(profile_manager->GetLastOpenedUser().Hash()); | ||||
|     } | ||||
|  | ||||
|     void EnsureIdTokenCacheAsync(Kernel::HLERequestContext& ctx) { | ||||
|     void EnsureIdTokenCacheAsync(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -565,13 +565,13 @@ private: | ||||
|         rb.PushIpcInterface(ensure_token_id); | ||||
|     } | ||||
|  | ||||
|     void LoadIdTokenCache(Kernel::HLERequestContext& ctx) { | ||||
|     void LoadIdTokenCache(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|  | ||||
|         ensure_token_id->LoadIdTokenCache(ctx); | ||||
|     } | ||||
|  | ||||
|     void GetNintendoAccountUserResourceCacheForApplication(Kernel::HLERequestContext& ctx) { | ||||
|     void GetNintendoAccountUserResourceCacheForApplication(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|  | ||||
|         std::vector<u8> nas_user_base_for_application(0x68); | ||||
| @@ -587,7 +587,7 @@ private: | ||||
|         rb.PushRaw<u64>(profile_manager->GetLastOpenedUser().Hash()); | ||||
|     } | ||||
|  | ||||
|     void StoreOpenContext(Kernel::HLERequestContext& ctx) { | ||||
|     void StoreOpenContext(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|         profile_manager->StoreOpenedUsers(); | ||||
| @@ -689,14 +689,14 @@ public: | ||||
|     } | ||||
| }; | ||||
|  | ||||
| void Module::Interface::GetUserCount(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::GetUserCount(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.Push<u32>(static_cast<u32>(profile_manager->GetUserCount())); | ||||
| } | ||||
|  | ||||
| void Module::Interface::GetUserExistence(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::GetUserExistence(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     Common::UUID user_id = rp.PopRaw<Common::UUID>(); | ||||
|     LOG_DEBUG(Service_ACC, "called user_id=0x{}", user_id.RawString()); | ||||
| @@ -706,28 +706,28 @@ void Module::Interface::GetUserExistence(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(profile_manager->UserExists(user_id)); | ||||
| } | ||||
|  | ||||
| void Module::Interface::ListAllUsers(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::ListAllUsers(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     ctx.WriteBuffer(profile_manager->GetAllUsers()); | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::ListOpenUsers(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::ListOpenUsers(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     ctx.WriteBuffer(profile_manager->GetOpenUsers()); | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::GetLastOpenedUser(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::GetLastOpenedUser(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 6}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.PushRaw<Common::UUID>(profile_manager->GetLastOpenedUser()); | ||||
| } | ||||
|  | ||||
| void Module::Interface::GetProfile(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::GetProfile(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     Common::UUID user_id = rp.PopRaw<Common::UUID>(); | ||||
|     LOG_DEBUG(Service_ACC, "called user_id=0x{}", user_id.RawString()); | ||||
| @@ -737,20 +737,20 @@ void Module::Interface::GetProfile(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IProfile>(system, user_id, *profile_manager); | ||||
| } | ||||
|  | ||||
| void Module::Interface::IsUserRegistrationRequestPermitted(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::IsUserRegistrationRequestPermitted(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.Push(profile_manager->CanSystemRegisterUser()); | ||||
| } | ||||
|  | ||||
| void Module::Interface::InitializeApplicationInfo(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::InitializeApplicationInfo(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(InitializeApplicationInfoBase()); | ||||
| } | ||||
|  | ||||
| void Module::Interface::InitializeApplicationInfoRestricted(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::InitializeApplicationInfoRestricted(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_ACC, "(Partial implementation) called"); | ||||
|  | ||||
|     // TODO(ogniK): We require checking if the user actually owns the title and what not. As of | ||||
| @@ -800,14 +800,14 @@ Result Module::Interface::InitializeApplicationInfoBase() { | ||||
|     return ResultSuccess; | ||||
| } | ||||
|  | ||||
| void Module::Interface::GetBaasAccountManagerForApplication(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::GetBaasAccountManagerForApplication(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.PushIpcInterface<IManagerForApplication>(system, profile_manager); | ||||
| } | ||||
|  | ||||
| void Module::Interface::IsUserAccountSwitchLocked(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::IsUserAccountSwitchLocked(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     FileSys::NACP nacp; | ||||
|     const auto res = system.GetAppLoader().ReadControlData(nacp); | ||||
| @@ -834,14 +834,14 @@ void Module::Interface::IsUserAccountSwitchLocked(Kernel::HLERequestContext& ctx | ||||
|     rb.Push(is_locked); | ||||
| } | ||||
|  | ||||
| void Module::Interface::InitializeApplicationInfoV2(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::InitializeApplicationInfoV2(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::GetProfileEditor(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::GetProfileEditor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     Common::UUID user_id = rp.PopRaw<Common::UUID>(); | ||||
|  | ||||
| @@ -852,7 +852,7 @@ void Module::Interface::GetProfileEditor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IProfileEditor>(system, user_id, *profile_manager); | ||||
| } | ||||
|  | ||||
| void Module::Interface::ListQualifiedUsers(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::ListQualifiedUsers(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|     // All users should be qualified. We don't actually have parental control or anything to do with | ||||
| @@ -863,7 +863,7 @@ void Module::Interface::ListQualifiedUsers(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::ListOpenContextStoredUsers(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::ListOpenContextStoredUsers(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|     ctx.WriteBuffer(profile_manager->GetStoredOpenedUsers()); | ||||
| @@ -871,7 +871,7 @@ void Module::Interface::ListOpenContextStoredUsers(Kernel::HLERequestContext& ct | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::StoreSaveDataThumbnailApplication(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::StoreSaveDataThumbnailApplication(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto uuid = rp.PopRaw<Common::UUID>(); | ||||
|  | ||||
| @@ -884,7 +884,7 @@ void Module::Interface::StoreSaveDataThumbnailApplication(Kernel::HLERequestCont | ||||
|     StoreSaveDataThumbnail(ctx, uuid, tid); | ||||
| } | ||||
|  | ||||
| void Module::Interface::StoreSaveDataThumbnailSystem(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::StoreSaveDataThumbnailSystem(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto uuid = rp.PopRaw<Common::UUID>(); | ||||
|     const auto tid = rp.Pop<u64_le>(); | ||||
| @@ -893,8 +893,8 @@ void Module::Interface::StoreSaveDataThumbnailSystem(Kernel::HLERequestContext& | ||||
|     StoreSaveDataThumbnail(ctx, uuid, tid); | ||||
| } | ||||
|  | ||||
| void Module::Interface::StoreSaveDataThumbnail(Kernel::HLERequestContext& ctx, | ||||
|                                                const Common::UUID& uuid, const u64 tid) { | ||||
| void Module::Interface::StoreSaveDataThumbnail(HLERequestContext& ctx, const Common::UUID& uuid, | ||||
|                                                const u64 tid) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|  | ||||
|     if (tid == 0) { | ||||
| @@ -920,7 +920,7 @@ void Module::Interface::StoreSaveDataThumbnail(Kernel::HLERequestContext& ctx, | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::TrySelectUserWithoutInteraction(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::TrySelectUserWithoutInteraction(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|     // A u8 is passed into this function which we can safely ignore. It's to determine if we have | ||||
|     // access to use the network or not by the looks of it | ||||
|   | ||||
| @@ -20,28 +20,28 @@ public: | ||||
|                            const char* name); | ||||
|         ~Interface() override; | ||||
|  | ||||
|         void GetUserCount(Kernel::HLERequestContext& ctx); | ||||
|         void GetUserExistence(Kernel::HLERequestContext& ctx); | ||||
|         void ListAllUsers(Kernel::HLERequestContext& ctx); | ||||
|         void ListOpenUsers(Kernel::HLERequestContext& ctx); | ||||
|         void GetLastOpenedUser(Kernel::HLERequestContext& ctx); | ||||
|         void GetProfile(Kernel::HLERequestContext& ctx); | ||||
|         void InitializeApplicationInfo(Kernel::HLERequestContext& ctx); | ||||
|         void InitializeApplicationInfoRestricted(Kernel::HLERequestContext& ctx); | ||||
|         void GetBaasAccountManagerForApplication(Kernel::HLERequestContext& ctx); | ||||
|         void IsUserRegistrationRequestPermitted(Kernel::HLERequestContext& ctx); | ||||
|         void TrySelectUserWithoutInteraction(Kernel::HLERequestContext& ctx); | ||||
|         void IsUserAccountSwitchLocked(Kernel::HLERequestContext& ctx); | ||||
|         void InitializeApplicationInfoV2(Kernel::HLERequestContext& ctx); | ||||
|         void GetProfileEditor(Kernel::HLERequestContext& ctx); | ||||
|         void ListQualifiedUsers(Kernel::HLERequestContext& ctx); | ||||
|         void ListOpenContextStoredUsers(Kernel::HLERequestContext& ctx); | ||||
|         void StoreSaveDataThumbnailApplication(Kernel::HLERequestContext& ctx); | ||||
|         void StoreSaveDataThumbnailSystem(Kernel::HLERequestContext& ctx); | ||||
|         void GetUserCount(HLERequestContext& ctx); | ||||
|         void GetUserExistence(HLERequestContext& ctx); | ||||
|         void ListAllUsers(HLERequestContext& ctx); | ||||
|         void ListOpenUsers(HLERequestContext& ctx); | ||||
|         void GetLastOpenedUser(HLERequestContext& ctx); | ||||
|         void GetProfile(HLERequestContext& ctx); | ||||
|         void InitializeApplicationInfo(HLERequestContext& ctx); | ||||
|         void InitializeApplicationInfoRestricted(HLERequestContext& ctx); | ||||
|         void GetBaasAccountManagerForApplication(HLERequestContext& ctx); | ||||
|         void IsUserRegistrationRequestPermitted(HLERequestContext& ctx); | ||||
|         void TrySelectUserWithoutInteraction(HLERequestContext& ctx); | ||||
|         void IsUserAccountSwitchLocked(HLERequestContext& ctx); | ||||
|         void InitializeApplicationInfoV2(HLERequestContext& ctx); | ||||
|         void GetProfileEditor(HLERequestContext& ctx); | ||||
|         void ListQualifiedUsers(HLERequestContext& ctx); | ||||
|         void ListOpenContextStoredUsers(HLERequestContext& ctx); | ||||
|         void StoreSaveDataThumbnailApplication(HLERequestContext& ctx); | ||||
|         void StoreSaveDataThumbnailSystem(HLERequestContext& ctx); | ||||
|  | ||||
|     private: | ||||
|         Result InitializeApplicationInfoBase(); | ||||
|         void StoreSaveDataThumbnail(Kernel::HLERequestContext& ctx, const Common::UUID& uuid, | ||||
|         void StoreSaveDataThumbnail(HLERequestContext& ctx, const Common::UUID& uuid, | ||||
|                                     const u64 tid); | ||||
|  | ||||
|         enum class ApplicationType : u32_le { | ||||
|   | ||||
| @@ -2,9 +2,9 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/acc/async_context.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Account { | ||||
| IAsyncContext::IAsyncContext(Core::System& system_) | ||||
| @@ -27,7 +27,7 @@ IAsyncContext::~IAsyncContext() { | ||||
|     service_context.CloseEvent(completion_event); | ||||
| } | ||||
|  | ||||
| void IAsyncContext::GetSystemEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IAsyncContext::GetSystemEvent(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -35,7 +35,7 @@ void IAsyncContext::GetSystemEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(completion_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void IAsyncContext::Cancel(Kernel::HLERequestContext& ctx) { | ||||
| void IAsyncContext::Cancel(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|     Cancel(); | ||||
| @@ -45,7 +45,7 @@ void IAsyncContext::Cancel(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IAsyncContext::HasDone(Kernel::HLERequestContext& ctx) { | ||||
| void IAsyncContext::HasDone(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|     is_complete.store(IsComplete()); | ||||
| @@ -55,7 +55,7 @@ void IAsyncContext::HasDone(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(is_complete.load()); | ||||
| } | ||||
|  | ||||
| void IAsyncContext::GetResult(Kernel::HLERequestContext& ctx) { | ||||
| void IAsyncContext::GetResult(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|   | ||||
| @@ -18,10 +18,10 @@ public: | ||||
|     explicit IAsyncContext(Core::System& system_); | ||||
|     ~IAsyncContext() override; | ||||
|  | ||||
|     void GetSystemEvent(Kernel::HLERequestContext& ctx); | ||||
|     void Cancel(Kernel::HLERequestContext& ctx); | ||||
|     void HasDone(Kernel::HLERequestContext& ctx); | ||||
|     void GetResult(Kernel::HLERequestContext& ctx); | ||||
|     void GetSystemEvent(HLERequestContext& ctx); | ||||
|     void Cancel(HLERequestContext& ctx); | ||||
|     void HasDone(HLERequestContext& ctx); | ||||
|     void GetResult(HLERequestContext& ctx); | ||||
|  | ||||
| protected: | ||||
|     virtual bool IsComplete() const = 0; | ||||
|   | ||||
| @@ -11,7 +11,6 @@ | ||||
| #include "core/file_sys/patch_manager.h" | ||||
| #include "core/file_sys/registered_cache.h" | ||||
| #include "core/file_sys/savedata_factory.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/kernel/k_transfer_memory.h" | ||||
| #include "core/hle/service/acc/profile_manager.h" | ||||
| @@ -29,6 +28,7 @@ | ||||
| #include "core/hle/service/bcat/backend/backend.h" | ||||
| #include "core/hle/service/caps/caps.h" | ||||
| #include "core/hle/service/filesystem/filesystem.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/ns/ns.h" | ||||
| #include "core/hle/service/nvflinger/nvflinger.h" | ||||
| #include "core/hle/service/pm/pm.h" | ||||
| @@ -78,7 +78,7 @@ IWindowController::IWindowController(Core::System& system_) | ||||
|  | ||||
| IWindowController::~IWindowController() = default; | ||||
|  | ||||
| void IWindowController::GetAppletResourceUserId(Kernel::HLERequestContext& ctx) { | ||||
| void IWindowController::GetAppletResourceUserId(HLERequestContext& ctx) { | ||||
|     const u64 process_id = system.ApplicationProcess()->GetProcessID(); | ||||
|  | ||||
|     LOG_DEBUG(Service_AM, "called. Process ID=0x{:016X}", process_id); | ||||
| @@ -88,7 +88,7 @@ void IWindowController::GetAppletResourceUserId(Kernel::HLERequestContext& ctx) | ||||
|     rb.Push<u64>(process_id); | ||||
| } | ||||
|  | ||||
| void IWindowController::AcquireForegroundRights(Kernel::HLERequestContext& ctx) { | ||||
| void IWindowController::AcquireForegroundRights(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| @@ -111,7 +111,7 @@ IAudioController::IAudioController(Core::System& system_) | ||||
|  | ||||
| IAudioController::~IAudioController() = default; | ||||
|  | ||||
| void IAudioController::SetExpectedMasterVolume(Kernel::HLERequestContext& ctx) { | ||||
| void IAudioController::SetExpectedMasterVolume(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const float main_applet_volume_tmp = rp.Pop<float>(); | ||||
|     const float library_applet_volume_tmp = rp.Pop<float>(); | ||||
| @@ -128,21 +128,21 @@ void IAudioController::SetExpectedMasterVolume(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IAudioController::GetMainAppletExpectedMasterVolume(Kernel::HLERequestContext& ctx) { | ||||
| void IAudioController::GetMainAppletExpectedMasterVolume(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called. main_applet_volume={}", main_applet_volume); | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.Push(main_applet_volume); | ||||
| } | ||||
|  | ||||
| void IAudioController::GetLibraryAppletExpectedMasterVolume(Kernel::HLERequestContext& ctx) { | ||||
| void IAudioController::GetLibraryAppletExpectedMasterVolume(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called. library_applet_volume={}", library_applet_volume); | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.Push(library_applet_volume); | ||||
| } | ||||
|  | ||||
| void IAudioController::ChangeMainAppletMasterVolume(Kernel::HLERequestContext& ctx) { | ||||
| void IAudioController::ChangeMainAppletMasterVolume(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         float volume; | ||||
|         s64 fade_time_ns; | ||||
| @@ -162,7 +162,7 @@ void IAudioController::ChangeMainAppletMasterVolume(Kernel::HLERequestContext& c | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IAudioController::SetTransparentAudioRate(Kernel::HLERequestContext& ctx) { | ||||
| void IAudioController::SetTransparentAudioRate(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const float transparent_volume_rate_tmp = rp.Pop<float>(); | ||||
|  | ||||
| @@ -328,7 +328,7 @@ ISelfController::~ISelfController() { | ||||
|     service_context.CloseEvent(accumulated_suspended_tick_changed_event); | ||||
| } | ||||
|  | ||||
| void ISelfController::Exit(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::Exit(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -337,7 +337,7 @@ void ISelfController::Exit(Kernel::HLERequestContext& ctx) { | ||||
|     system.Exit(); | ||||
| } | ||||
|  | ||||
| void ISelfController::LockExit(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::LockExit(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     system.SetExitLock(true); | ||||
| @@ -346,7 +346,7 @@ void ISelfController::LockExit(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::UnlockExit(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::UnlockExit(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     system.SetExitLock(false); | ||||
| @@ -355,7 +355,7 @@ void ISelfController::UnlockExit(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::EnterFatalSection(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::EnterFatalSection(HLERequestContext& ctx) { | ||||
|     ++num_fatal_sections_entered; | ||||
|     LOG_DEBUG(Service_AM, "called. Num fatal sections entered: {}", num_fatal_sections_entered); | ||||
|  | ||||
| @@ -363,7 +363,7 @@ void ISelfController::EnterFatalSection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::LeaveFatalSection(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::LeaveFatalSection(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called."); | ||||
|  | ||||
|     // Entry and exit of fatal sections must be balanced. | ||||
| @@ -379,7 +379,7 @@ void ISelfController::LeaveFatalSection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::GetLibraryAppletLaunchableEvent(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     launchable_event->Signal(); | ||||
| @@ -389,7 +389,7 @@ void ISelfController::GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext& | ||||
|     rb.PushCopyObjects(launchable_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetScreenShotPermission(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetScreenShotPermission(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto permission = rp.PopEnum<ScreenshotPermission>(); | ||||
|     LOG_DEBUG(Service_AM, "called, permission={}", permission); | ||||
| @@ -400,7 +400,7 @@ void ISelfController::SetScreenShotPermission(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetOperationModeChangedNotification(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetOperationModeChangedNotification(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     bool flag = rp.Pop<bool>(); | ||||
| @@ -410,7 +410,7 @@ void ISelfController::SetOperationModeChangedNotification(Kernel::HLERequestCont | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetPerformanceModeChangedNotification(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetPerformanceModeChangedNotification(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     bool flag = rp.Pop<bool>(); | ||||
| @@ -420,7 +420,7 @@ void ISelfController::SetPerformanceModeChangedNotification(Kernel::HLERequestCo | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetFocusHandlingMode(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetFocusHandlingMode(HLERequestContext& ctx) { | ||||
|     // Takes 3 input u8s with each field located immediately after the previous | ||||
|     // u8, these are bool flags. No output. | ||||
|     IPC::RequestParser rp{ctx}; | ||||
| @@ -439,14 +439,14 @@ void ISelfController::SetFocusHandlingMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetRestartMessageEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetRestartMessageEnabled(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetOutOfFocusSuspendingEnabled(HLERequestContext& ctx) { | ||||
|     // Takes 3 input u8s with each field located immediately after the previous | ||||
|     // u8, these are bool flags. No output. | ||||
|     IPC::RequestParser rp{ctx}; | ||||
| @@ -458,14 +458,14 @@ void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetAlbumImageOrientation(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetAlbumImageOrientation(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::CreateManagedDisplayLayer(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     // TODO(Subv): Find out how AM determines the display to use, for now just | ||||
| @@ -478,7 +478,7 @@ void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) | ||||
|     rb.Push(*layer_id); | ||||
| } | ||||
|  | ||||
| void ISelfController::CreateManagedDisplaySeparableLayer(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::CreateManagedDisplaySeparableLayer(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     // TODO(Subv): Find out how AM determines the display to use, for now just | ||||
| @@ -496,14 +496,14 @@ void ISelfController::CreateManagedDisplaySeparableLayer(Kernel::HLERequestConte | ||||
|     rb.Push(*layer_id); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetHandlesRequestToDisplay(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetHandlesRequestToDisplay(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetIdleTimeDetectionExtension(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetIdleTimeDetectionExtension(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     idle_time_detection_extension = rp.Pop<u32>(); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called idle_time_detection_extension={}", | ||||
| @@ -513,7 +513,7 @@ void ISelfController::SetIdleTimeDetectionExtension(Kernel::HLERequestContext& c | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::GetIdleTimeDetectionExtension(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::GetIdleTimeDetectionExtension(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -521,14 +521,14 @@ void ISelfController::GetIdleTimeDetectionExtension(Kernel::HLERequestContext& c | ||||
|     rb.Push<u32>(idle_time_detection_extension); | ||||
| } | ||||
|  | ||||
| void ISelfController::ReportUserIsActive(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::ReportUserIsActive(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetAutoSleepDisabled(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetAutoSleepDisabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     is_auto_sleep_disabled = rp.Pop<bool>(); | ||||
|  | ||||
| @@ -548,7 +548,7 @@ void ISelfController::SetAutoSleepDisabled(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::IsAutoSleepDisabled(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::IsAutoSleepDisabled(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called."); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -556,7 +556,7 @@ void ISelfController::IsAutoSleepDisabled(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(is_auto_sleep_disabled); | ||||
| } | ||||
|  | ||||
| void ISelfController::GetAccumulatedSuspendedTickValue(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::GetAccumulatedSuspendedTickValue(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called."); | ||||
|  | ||||
|     // This command returns the total number of system ticks since ISelfController creation | ||||
| @@ -567,7 +567,7 @@ void ISelfController::GetAccumulatedSuspendedTickValue(Kernel::HLERequestContext | ||||
|     rb.Push<u64>(0); | ||||
| } | ||||
|  | ||||
| void ISelfController::GetAccumulatedSuspendedTickChangedEvent(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::GetAccumulatedSuspendedTickChangedEvent(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called."); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -575,7 +575,7 @@ void ISelfController::GetAccumulatedSuspendedTickChangedEvent(Kernel::HLERequest | ||||
|     rb.PushCopyObjects(accumulated_suspended_tick_changed_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetAlbumImageTakenNotificationEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetAlbumImageTakenNotificationEnabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     // This service call sets an internal flag whether a notification is shown when an image is | ||||
| @@ -590,7 +590,7 @@ void ISelfController::SetAlbumImageTakenNotificationEnabled(Kernel::HLERequestCo | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SaveCurrentScreenshot(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SaveCurrentScreenshot(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const auto album_report_option = rp.PopEnum<Capture::AlbumReportOption>(); | ||||
| @@ -601,7 +601,7 @@ void ISelfController::SaveCurrentScreenshot(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ISelfController::SetRecordVolumeMuted(Kernel::HLERequestContext& ctx) { | ||||
| void ISelfController::SetRecordVolumeMuted(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const auto is_record_volume_muted = rp.Pop<bool>(); | ||||
| @@ -735,7 +735,7 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, | ||||
|  | ||||
| ICommonStateGetter::~ICommonStateGetter() = default; | ||||
|  | ||||
| void ICommonStateGetter::GetBootMode(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::GetBootMode(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -743,7 +743,7 @@ void ICommonStateGetter::GetBootMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u8>(static_cast<u8>(Service::PM::SystemBootMode::Normal)); // Normal boot mode | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::GetEventHandle(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::GetEventHandle(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -751,7 +751,7 @@ void ICommonStateGetter::GetEventHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(msg_queue->GetMessageReceiveEvent()); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::ReceiveMessage(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::ReceiveMessage(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     const auto message = msg_queue->PopMessage(); | ||||
| @@ -768,7 +768,7 @@ void ICommonStateGetter::ReceiveMessage(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum<AppletMessageQueue::AppletMessage>(message); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::GetCurrentFocusState(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::GetCurrentFocusState(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -776,7 +776,7 @@ void ICommonStateGetter::GetCurrentFocusState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<u8>(FocusState::InFocus)); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::IsVrModeEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::IsVrModeEnabled(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -784,7 +784,7 @@ void ICommonStateGetter::IsVrModeEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(vr_mode_state); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::SetVrModeEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::SetVrModeEnabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     vr_mode_state = rp.Pop<bool>(); | ||||
|  | ||||
| @@ -794,7 +794,7 @@ void ICommonStateGetter::SetVrModeEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::SetLcdBacklighOffEnabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto is_lcd_backlight_off_enabled = rp.Pop<bool>(); | ||||
|  | ||||
| @@ -805,21 +805,21 @@ void ICommonStateGetter::SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::BeginVrModeEx(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::BeginVrModeEx(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::EndVrModeEx(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::EndVrModeEx(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -827,7 +827,7 @@ void ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent(Kernel::HLEReque | ||||
|     rb.PushCopyObjects(msg_queue->GetOperationModeChangedEvent()); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::GetDefaultDisplayResolution(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::GetDefaultDisplayResolution(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
| @@ -842,7 +842,7 @@ void ICommonStateGetter::GetDefaultDisplayResolution(Kernel::HLERequestContext& | ||||
|     } | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::SetCpuBoostMode(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::SetCpuBoostMode(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called, forwarding to APM:SYS"); | ||||
|  | ||||
|     const auto& sm = system.ServiceManager(); | ||||
| @@ -852,7 +852,7 @@ void ICommonStateGetter::SetCpuBoostMode(Kernel::HLERequestContext& ctx) { | ||||
|     apm_sys->SetCpuBoostMode(ctx); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::PerformSystemButtonPressingIfInFocus(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::PerformSystemButtonPressingIfInFocus(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto system_button{rp.PopEnum<SystemButtonType>()}; | ||||
|  | ||||
| @@ -863,7 +863,7 @@ void ICommonStateGetter::PerformSystemButtonPressingIfInFocus(Kernel::HLERequest | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
|     HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -911,7 +911,7 @@ void IStorage::Register() { | ||||
|  | ||||
| IStorage::~IStorage() = default; | ||||
|  | ||||
| void IStorage::Open(Kernel::HLERequestContext& ctx) { | ||||
| void IStorage::Open(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -920,7 +920,7 @@ void IStorage::Open(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IStorageAccessor>(system, *this); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::GetOperationMode(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::GetOperationMode(HLERequestContext& ctx) { | ||||
|     const bool use_docked_mode{Settings::values.use_docked_mode.GetValue()}; | ||||
|     LOG_DEBUG(Service_AM, "called, use_docked_mode={}", use_docked_mode); | ||||
|  | ||||
| @@ -929,7 +929,7 @@ void ICommonStateGetter::GetOperationMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<u8>(use_docked_mode ? OperationMode::Docked : OperationMode::Handheld)); | ||||
| } | ||||
|  | ||||
| void ICommonStateGetter::GetPerformanceMode(Kernel::HLERequestContext& ctx) { | ||||
| void ICommonStateGetter::GetPerformanceMode(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -969,7 +969,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetAppletStateChangedEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAppletStateChangedEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -977,7 +977,7 @@ private: | ||||
|         rb.PushCopyObjects(applet->GetBroker().GetStateChangedEvent()); | ||||
|     } | ||||
|  | ||||
|     void IsCompleted(Kernel::HLERequestContext& ctx) { | ||||
|     void IsCompleted(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -985,21 +985,21 @@ private: | ||||
|         rb.Push<u32>(applet->TransactionComplete()); | ||||
|     } | ||||
|  | ||||
|     void GetResult(Kernel::HLERequestContext& ctx) { | ||||
|     void GetResult(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(applet->GetStatus()); | ||||
|     } | ||||
|  | ||||
|     void PresetLibraryAppletGpuTimeSliceZero(Kernel::HLERequestContext& ctx) { | ||||
|     void PresetLibraryAppletGpuTimeSliceZero(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Start(Kernel::HLERequestContext& ctx) { | ||||
|     void Start(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         ASSERT(applet != nullptr); | ||||
| @@ -1011,7 +1011,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void PushInData(Kernel::HLERequestContext& ctx) { | ||||
|     void PushInData(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::RequestParser rp{ctx}; | ||||
| @@ -1021,7 +1021,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void PopOutData(Kernel::HLERequestContext& ctx) { | ||||
|     void PopOutData(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         auto storage = applet->GetBroker().PopNormalDataToGame(); | ||||
| @@ -1038,7 +1038,7 @@ private: | ||||
|         rb.PushIpcInterface<IStorage>(std::move(storage)); | ||||
|     } | ||||
|  | ||||
|     void PushInteractiveInData(Kernel::HLERequestContext& ctx) { | ||||
|     void PushInteractiveInData(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::RequestParser rp{ctx}; | ||||
| @@ -1052,7 +1052,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void PopInteractiveOutData(Kernel::HLERequestContext& ctx) { | ||||
|     void PopInteractiveOutData(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         auto storage = applet->GetBroker().PopInteractiveDataToGame(); | ||||
| @@ -1069,7 +1069,7 @@ private: | ||||
|         rb.PushIpcInterface<IStorage>(std::move(storage)); | ||||
|     } | ||||
|  | ||||
|     void GetPopOutDataEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void GetPopOutDataEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -1077,7 +1077,7 @@ private: | ||||
|         rb.PushCopyObjects(applet->GetBroker().GetNormalDataEvent()); | ||||
|     } | ||||
|  | ||||
|     void GetPopInteractiveOutDataEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void GetPopInteractiveOutDataEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -1085,7 +1085,7 @@ private: | ||||
|         rb.PushCopyObjects(applet->GetBroker().GetInteractiveDataEvent()); | ||||
|     } | ||||
|  | ||||
|     void GetIndirectLayerConsumerHandle(Kernel::HLERequestContext& ctx) { | ||||
|     void GetIndirectLayerConsumerHandle(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|         // We require a non-zero handle to be valid. Using 0xdeadbeef allows us to trace if this is | ||||
| @@ -1115,7 +1115,7 @@ IStorageAccessor::IStorageAccessor(Core::System& system_, IStorage& backing_) | ||||
|  | ||||
| IStorageAccessor::~IStorageAccessor() = default; | ||||
|  | ||||
| void IStorageAccessor::GetSize(Kernel::HLERequestContext& ctx) { | ||||
| void IStorageAccessor::GetSize(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
| @@ -1124,7 +1124,7 @@ void IStorageAccessor::GetSize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<u64>(backing.GetSize())); | ||||
| } | ||||
|  | ||||
| void IStorageAccessor::Write(Kernel::HLERequestContext& ctx) { | ||||
| void IStorageAccessor::Write(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const u64 offset{rp.Pop<u64>()}; | ||||
| @@ -1149,7 +1149,7 @@ void IStorageAccessor::Write(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IStorageAccessor::Read(Kernel::HLERequestContext& ctx) { | ||||
| void IStorageAccessor::Read(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const u64 offset{rp.Pop<u64>()}; | ||||
| @@ -1187,7 +1187,7 @@ ILibraryAppletCreator::ILibraryAppletCreator(Core::System& system_) | ||||
|  | ||||
| ILibraryAppletCreator::~ILibraryAppletCreator() = default; | ||||
|  | ||||
| void ILibraryAppletCreator::CreateLibraryApplet(Kernel::HLERequestContext& ctx) { | ||||
| void ILibraryAppletCreator::CreateLibraryApplet(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const auto applet_id = rp.PopRaw<Applets::AppletId>(); | ||||
| @@ -1213,7 +1213,7 @@ void ILibraryAppletCreator::CreateLibraryApplet(Kernel::HLERequestContext& ctx) | ||||
|     rb.PushIpcInterface<ILibraryAppletAccessor>(system, applet); | ||||
| } | ||||
|  | ||||
| void ILibraryAppletCreator::CreateStorage(Kernel::HLERequestContext& ctx) { | ||||
| void ILibraryAppletCreator::CreateStorage(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const s64 size{rp.Pop<s64>()}; | ||||
| @@ -1234,7 +1234,7 @@ void ILibraryAppletCreator::CreateStorage(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IStorage>(system, std::move(buffer)); | ||||
| } | ||||
|  | ||||
| void ILibraryAppletCreator::CreateTransferMemoryStorage(Kernel::HLERequestContext& ctx) { | ||||
| void ILibraryAppletCreator::CreateTransferMemoryStorage(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     struct Parameters { | ||||
| @@ -1273,7 +1273,7 @@ void ILibraryAppletCreator::CreateTransferMemoryStorage(Kernel::HLERequestContex | ||||
|     rb.PushIpcInterface<IStorage>(system, std::move(memory)); | ||||
| } | ||||
|  | ||||
| void ILibraryAppletCreator::CreateHandleStorage(Kernel::HLERequestContext& ctx) { | ||||
| void ILibraryAppletCreator::CreateHandleStorage(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const s64 size{rp.Pop<s64>()}; | ||||
| @@ -1395,29 +1395,28 @@ IApplicationFunctions::~IApplicationFunctions() { | ||||
|     service_context.CloseEvent(health_warning_disappeared_system_event); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::EnableApplicationCrashReport(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::EnableApplicationCrashReport(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::InitializeApplicationCopyrightFrameBuffer( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::InitializeApplicationCopyrightFrameBuffer(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::SetApplicationCopyrightImage(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::SetApplicationCopyrightImage(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::SetApplicationCopyrightVisibility(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::SetApplicationCopyrightVisibility(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto is_visible = rp.Pop<bool>(); | ||||
|  | ||||
| @@ -1427,37 +1426,35 @@ void IApplicationFunctions::SetApplicationCopyrightVisibility(Kernel::HLERequest | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::BeginBlockingHomeButton(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::BeginBlockingHomeButton(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::EndBlockingHomeButton(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::EndBlockingHomeButton(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::PopLaunchParameter(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto kind = rp.PopEnum<LaunchParameterKind>(); | ||||
|  | ||||
| @@ -1509,15 +1506,14 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ERR_NO_DATA_IN_CHANNEL); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::CreateApplicationAndRequestToStartForQuest( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::CreateApplicationAndRequestToStartForQuest(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::EnsureSaveData(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u128 user_id = rp.PopRaw<u128>(); | ||||
|  | ||||
| @@ -1535,7 +1531,7 @@ void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u64>(0); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::SetTerminateResult(HLERequestContext& ctx) { | ||||
|     // Takes an input u32 Result, no output. | ||||
|     // For example, in some cases official apps use this with error 0x2A2 then | ||||
|     // uses svcBreak. | ||||
| @@ -1548,7 +1544,7 @@ void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetDisplayVersion(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     std::array<u8, 0x10> version_string{}; | ||||
| @@ -1582,7 +1578,7 @@ void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(version_string); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetDesiredLanguage(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetDesiredLanguage(HLERequestContext& ctx) { | ||||
|     // TODO(bunnei): This should be configurable | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
| @@ -1638,7 +1634,7 @@ void IApplicationFunctions::GetDesiredLanguage(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(*res_code); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::IsGamePlayRecordingSupported(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::IsGamePlayRecordingSupported(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     constexpr bool gameplay_recording_supported = false; | ||||
| @@ -1648,21 +1644,21 @@ void IApplicationFunctions::IsGamePlayRecordingSupported(Kernel::HLERequestConte | ||||
|     rb.Push(gameplay_recording_supported); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::InitializeGamePlayRecording(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::InitializeGamePlayRecording(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::SetGamePlayRecordingState(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::SetGamePlayRecordingState(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::NotifyRunning(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::NotifyRunning(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -1670,7 +1666,7 @@ void IApplicationFunctions::NotifyRunning(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u8>(0); // Unknown, seems to be ignored by official processes | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetPseudoDeviceId(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetPseudoDeviceId(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 6}; | ||||
| @@ -1681,7 +1677,7 @@ void IApplicationFunctions::GetPseudoDeviceId(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u64>(0); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::ExtendSaveData(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::ExtendSaveData(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         FileSys::SaveDataType type; | ||||
|         u128 user_id; | ||||
| @@ -1710,7 +1706,7 @@ void IApplicationFunctions::ExtendSaveData(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u64>(0); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetSaveDataSize(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetSaveDataSize(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         FileSys::SaveDataType type; | ||||
|         u128 user_id; | ||||
| @@ -1732,7 +1728,7 @@ void IApplicationFunctions::GetSaveDataSize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(size.journal); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::QueryApplicationPlayStatistics(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::QueryApplicationPlayStatistics(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -1740,7 +1736,7 @@ void IApplicationFunctions::QueryApplicationPlayStatistics(Kernel::HLERequestCon | ||||
|     rb.Push<u32>(0); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::QueryApplicationPlayStatisticsByUid(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::QueryApplicationPlayStatisticsByUid(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -1748,7 +1744,7 @@ void IApplicationFunctions::QueryApplicationPlayStatisticsByUid(Kernel::HLEReque | ||||
|     rb.Push<u32>(0); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::ExecuteProgram(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::ExecuteProgram(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::RequestParser rp{ctx}; | ||||
| @@ -1762,21 +1758,21 @@ void IApplicationFunctions::ExecuteProgram(Kernel::HLERequestContext& ctx) { | ||||
|     system.ExecuteProgram(program_index); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::ClearUserChannel(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::ClearUserChannel(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::UnpopToUserChannel(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::UnpopToUserChannel(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetPreviousProgramIndex(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetPreviousProgramIndex(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -1784,7 +1780,7 @@ void IApplicationFunctions::GetPreviousProgramIndex(Kernel::HLERequestContext& c | ||||
|     rb.Push<s32>(previous_program_index); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetGpuErrorDetectedSystemEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetGpuErrorDetectedSystemEvent(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -1792,7 +1788,7 @@ void IApplicationFunctions::GetGpuErrorDetectedSystemEvent(Kernel::HLERequestCon | ||||
|     rb.PushCopyObjects(gpu_error_detected_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetFriendInvitationStorageChannelEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetFriendInvitationStorageChannelEvent(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -1800,15 +1796,14 @@ void IApplicationFunctions::GetFriendInvitationStorageChannelEvent(Kernel::HLERe | ||||
|     rb.PushCopyObjects(friend_invitation_storage_channel_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::TryPopFromFriendInvitationStorageChannel( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::TryPopFromFriendInvitationStorageChannel(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ERR_NO_DATA_IN_CHANNEL); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetNotificationStorageChannelEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetNotificationStorageChannelEvent(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -1816,7 +1811,7 @@ void IApplicationFunctions::GetNotificationStorageChannelEvent(Kernel::HLEReques | ||||
|     rb.PushCopyObjects(notification_storage_channel_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::GetHealthWarningDisappearedSystemEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::GetHealthWarningDisappearedSystemEvent(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -1824,7 +1819,7 @@ void IApplicationFunctions::GetHealthWarningDisappearedSystemEvent(Kernel::HLERe | ||||
|     rb.PushCopyObjects(health_warning_disappeared_system_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void IApplicationFunctions::PrepareForJit(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationFunctions::PrepareForJit(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -1881,14 +1876,14 @@ IHomeMenuFunctions::~IHomeMenuFunctions() { | ||||
|     service_context.CloseEvent(pop_from_general_channel_event); | ||||
| } | ||||
|  | ||||
| void IHomeMenuFunctions::RequestToGetForeground(Kernel::HLERequestContext& ctx) { | ||||
| void IHomeMenuFunctions::RequestToGetForeground(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IHomeMenuFunctions::GetPopFromGeneralChannelEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IHomeMenuFunctions::GetPopFromGeneralChannelEvent(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| namespace Kernel { | ||||
| class KernelCore; | ||||
| class KReadableEvent; | ||||
| class KTransferMemory; | ||||
| } // namespace Kernel | ||||
|  | ||||
| @@ -109,8 +110,8 @@ public: | ||||
|     ~IWindowController() override; | ||||
|  | ||||
| private: | ||||
|     void GetAppletResourceUserId(Kernel::HLERequestContext& ctx); | ||||
|     void AcquireForegroundRights(Kernel::HLERequestContext& ctx); | ||||
|     void GetAppletResourceUserId(HLERequestContext& ctx); | ||||
|     void AcquireForegroundRights(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| class IAudioController final : public ServiceFramework<IAudioController> { | ||||
| @@ -119,11 +120,11 @@ public: | ||||
|     ~IAudioController() override; | ||||
|  | ||||
| private: | ||||
|     void SetExpectedMasterVolume(Kernel::HLERequestContext& ctx); | ||||
|     void GetMainAppletExpectedMasterVolume(Kernel::HLERequestContext& ctx); | ||||
|     void GetLibraryAppletExpectedMasterVolume(Kernel::HLERequestContext& ctx); | ||||
|     void ChangeMainAppletMasterVolume(Kernel::HLERequestContext& ctx); | ||||
|     void SetTransparentAudioRate(Kernel::HLERequestContext& ctx); | ||||
|     void SetExpectedMasterVolume(HLERequestContext& ctx); | ||||
|     void GetMainAppletExpectedMasterVolume(HLERequestContext& ctx); | ||||
|     void GetLibraryAppletExpectedMasterVolume(HLERequestContext& ctx); | ||||
|     void ChangeMainAppletMasterVolume(HLERequestContext& ctx); | ||||
|     void SetTransparentAudioRate(HLERequestContext& ctx); | ||||
|  | ||||
|     static constexpr float min_allowed_volume = 0.0f; | ||||
|     static constexpr float max_allowed_volume = 1.0f; | ||||
| @@ -157,32 +158,32 @@ public: | ||||
|     ~ISelfController() override; | ||||
|  | ||||
| private: | ||||
|     void Exit(Kernel::HLERequestContext& ctx); | ||||
|     void LockExit(Kernel::HLERequestContext& ctx); | ||||
|     void UnlockExit(Kernel::HLERequestContext& ctx); | ||||
|     void EnterFatalSection(Kernel::HLERequestContext& ctx); | ||||
|     void LeaveFatalSection(Kernel::HLERequestContext& ctx); | ||||
|     void GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext& ctx); | ||||
|     void SetScreenShotPermission(Kernel::HLERequestContext& ctx); | ||||
|     void SetOperationModeChangedNotification(Kernel::HLERequestContext& ctx); | ||||
|     void SetPerformanceModeChangedNotification(Kernel::HLERequestContext& ctx); | ||||
|     void SetFocusHandlingMode(Kernel::HLERequestContext& ctx); | ||||
|     void SetRestartMessageEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void SetAlbumImageOrientation(Kernel::HLERequestContext& ctx); | ||||
|     void CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx); | ||||
|     void CreateManagedDisplaySeparableLayer(Kernel::HLERequestContext& ctx); | ||||
|     void SetHandlesRequestToDisplay(Kernel::HLERequestContext& ctx); | ||||
|     void SetIdleTimeDetectionExtension(Kernel::HLERequestContext& ctx); | ||||
|     void GetIdleTimeDetectionExtension(Kernel::HLERequestContext& ctx); | ||||
|     void ReportUserIsActive(Kernel::HLERequestContext& ctx); | ||||
|     void SetAutoSleepDisabled(Kernel::HLERequestContext& ctx); | ||||
|     void IsAutoSleepDisabled(Kernel::HLERequestContext& ctx); | ||||
|     void GetAccumulatedSuspendedTickValue(Kernel::HLERequestContext& ctx); | ||||
|     void GetAccumulatedSuspendedTickChangedEvent(Kernel::HLERequestContext& ctx); | ||||
|     void SetAlbumImageTakenNotificationEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void SaveCurrentScreenshot(Kernel::HLERequestContext& ctx); | ||||
|     void SetRecordVolumeMuted(Kernel::HLERequestContext& ctx); | ||||
|     void Exit(HLERequestContext& ctx); | ||||
|     void LockExit(HLERequestContext& ctx); | ||||
|     void UnlockExit(HLERequestContext& ctx); | ||||
|     void EnterFatalSection(HLERequestContext& ctx); | ||||
|     void LeaveFatalSection(HLERequestContext& ctx); | ||||
|     void GetLibraryAppletLaunchableEvent(HLERequestContext& ctx); | ||||
|     void SetScreenShotPermission(HLERequestContext& ctx); | ||||
|     void SetOperationModeChangedNotification(HLERequestContext& ctx); | ||||
|     void SetPerformanceModeChangedNotification(HLERequestContext& ctx); | ||||
|     void SetFocusHandlingMode(HLERequestContext& ctx); | ||||
|     void SetRestartMessageEnabled(HLERequestContext& ctx); | ||||
|     void SetOutOfFocusSuspendingEnabled(HLERequestContext& ctx); | ||||
|     void SetAlbumImageOrientation(HLERequestContext& ctx); | ||||
|     void CreateManagedDisplayLayer(HLERequestContext& ctx); | ||||
|     void CreateManagedDisplaySeparableLayer(HLERequestContext& ctx); | ||||
|     void SetHandlesRequestToDisplay(HLERequestContext& ctx); | ||||
|     void SetIdleTimeDetectionExtension(HLERequestContext& ctx); | ||||
|     void GetIdleTimeDetectionExtension(HLERequestContext& ctx); | ||||
|     void ReportUserIsActive(HLERequestContext& ctx); | ||||
|     void SetAutoSleepDisabled(HLERequestContext& ctx); | ||||
|     void IsAutoSleepDisabled(HLERequestContext& ctx); | ||||
|     void GetAccumulatedSuspendedTickValue(HLERequestContext& ctx); | ||||
|     void GetAccumulatedSuspendedTickChangedEvent(HLERequestContext& ctx); | ||||
|     void SetAlbumImageTakenNotificationEnabled(HLERequestContext& ctx); | ||||
|     void SaveCurrentScreenshot(HLERequestContext& ctx); | ||||
|     void SetRecordVolumeMuted(HLERequestContext& ctx); | ||||
|  | ||||
|     enum class ScreenshotPermission : u32 { | ||||
|         Inherit = 0, | ||||
| @@ -235,22 +236,22 @@ private: | ||||
|         CaptureButtonLongPressing, | ||||
|     }; | ||||
|  | ||||
|     void GetEventHandle(Kernel::HLERequestContext& ctx); | ||||
|     void ReceiveMessage(Kernel::HLERequestContext& ctx); | ||||
|     void GetCurrentFocusState(Kernel::HLERequestContext& ctx); | ||||
|     void GetDefaultDisplayResolutionChangeEvent(Kernel::HLERequestContext& ctx); | ||||
|     void GetOperationMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetPerformanceMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetBootMode(Kernel::HLERequestContext& ctx); | ||||
|     void IsVrModeEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void SetVrModeEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void BeginVrModeEx(Kernel::HLERequestContext& ctx); | ||||
|     void EndVrModeEx(Kernel::HLERequestContext& ctx); | ||||
|     void GetDefaultDisplayResolution(Kernel::HLERequestContext& ctx); | ||||
|     void SetCpuBoostMode(Kernel::HLERequestContext& ctx); | ||||
|     void PerformSystemButtonPressingIfInFocus(Kernel::HLERequestContext& ctx); | ||||
|     void SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void GetEventHandle(HLERequestContext& ctx); | ||||
|     void ReceiveMessage(HLERequestContext& ctx); | ||||
|     void GetCurrentFocusState(HLERequestContext& ctx); | ||||
|     void GetDefaultDisplayResolutionChangeEvent(HLERequestContext& ctx); | ||||
|     void GetOperationMode(HLERequestContext& ctx); | ||||
|     void GetPerformanceMode(HLERequestContext& ctx); | ||||
|     void GetBootMode(HLERequestContext& ctx); | ||||
|     void IsVrModeEnabled(HLERequestContext& ctx); | ||||
|     void SetVrModeEnabled(HLERequestContext& ctx); | ||||
|     void SetLcdBacklighOffEnabled(HLERequestContext& ctx); | ||||
|     void BeginVrModeEx(HLERequestContext& ctx); | ||||
|     void EndVrModeEx(HLERequestContext& ctx); | ||||
|     void GetDefaultDisplayResolution(HLERequestContext& ctx); | ||||
|     void SetCpuBoostMode(HLERequestContext& ctx); | ||||
|     void PerformSystemButtonPressingIfInFocus(HLERequestContext& ctx); | ||||
|     void SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled(HLERequestContext& ctx); | ||||
|  | ||||
|     std::shared_ptr<AppletMessageQueue> msg_queue; | ||||
|     bool vr_mode_state{}; | ||||
| @@ -283,7 +284,7 @@ public: | ||||
|  | ||||
| private: | ||||
|     void Register(); | ||||
|     void Open(Kernel::HLERequestContext& ctx); | ||||
|     void Open(HLERequestContext& ctx); | ||||
|  | ||||
|     std::shared_ptr<IStorageImpl> impl; | ||||
| }; | ||||
| @@ -294,9 +295,9 @@ public: | ||||
|     ~IStorageAccessor() override; | ||||
|  | ||||
| private: | ||||
|     void GetSize(Kernel::HLERequestContext& ctx); | ||||
|     void Write(Kernel::HLERequestContext& ctx); | ||||
|     void Read(Kernel::HLERequestContext& ctx); | ||||
|     void GetSize(HLERequestContext& ctx); | ||||
|     void Write(HLERequestContext& ctx); | ||||
|     void Read(HLERequestContext& ctx); | ||||
|  | ||||
|     IStorage& backing; | ||||
| }; | ||||
| @@ -307,10 +308,10 @@ public: | ||||
|     ~ILibraryAppletCreator() override; | ||||
|  | ||||
| private: | ||||
|     void CreateLibraryApplet(Kernel::HLERequestContext& ctx); | ||||
|     void CreateStorage(Kernel::HLERequestContext& ctx); | ||||
|     void CreateTransferMemoryStorage(Kernel::HLERequestContext& ctx); | ||||
|     void CreateHandleStorage(Kernel::HLERequestContext& ctx); | ||||
|     void CreateLibraryApplet(HLERequestContext& ctx); | ||||
|     void CreateStorage(HLERequestContext& ctx); | ||||
|     void CreateTransferMemoryStorage(HLERequestContext& ctx); | ||||
|     void CreateHandleStorage(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| class IApplicationFunctions final : public ServiceFramework<IApplicationFunctions> { | ||||
| @@ -319,39 +320,39 @@ public: | ||||
|     ~IApplicationFunctions() override; | ||||
|  | ||||
| private: | ||||
|     void PopLaunchParameter(Kernel::HLERequestContext& ctx); | ||||
|     void CreateApplicationAndRequestToStartForQuest(Kernel::HLERequestContext& ctx); | ||||
|     void EnsureSaveData(Kernel::HLERequestContext& ctx); | ||||
|     void SetTerminateResult(Kernel::HLERequestContext& ctx); | ||||
|     void GetDisplayVersion(Kernel::HLERequestContext& ctx); | ||||
|     void GetDesiredLanguage(Kernel::HLERequestContext& ctx); | ||||
|     void IsGamePlayRecordingSupported(Kernel::HLERequestContext& ctx); | ||||
|     void InitializeGamePlayRecording(Kernel::HLERequestContext& ctx); | ||||
|     void SetGamePlayRecordingState(Kernel::HLERequestContext& ctx); | ||||
|     void NotifyRunning(Kernel::HLERequestContext& ctx); | ||||
|     void GetPseudoDeviceId(Kernel::HLERequestContext& ctx); | ||||
|     void ExtendSaveData(Kernel::HLERequestContext& ctx); | ||||
|     void GetSaveDataSize(Kernel::HLERequestContext& ctx); | ||||
|     void BeginBlockingHomeButtonShortAndLongPressed(Kernel::HLERequestContext& ctx); | ||||
|     void EndBlockingHomeButtonShortAndLongPressed(Kernel::HLERequestContext& ctx); | ||||
|     void BeginBlockingHomeButton(Kernel::HLERequestContext& ctx); | ||||
|     void EndBlockingHomeButton(Kernel::HLERequestContext& ctx); | ||||
|     void EnableApplicationCrashReport(Kernel::HLERequestContext& ctx); | ||||
|     void InitializeApplicationCopyrightFrameBuffer(Kernel::HLERequestContext& ctx); | ||||
|     void SetApplicationCopyrightImage(Kernel::HLERequestContext& ctx); | ||||
|     void SetApplicationCopyrightVisibility(Kernel::HLERequestContext& ctx); | ||||
|     void QueryApplicationPlayStatistics(Kernel::HLERequestContext& ctx); | ||||
|     void QueryApplicationPlayStatisticsByUid(Kernel::HLERequestContext& ctx); | ||||
|     void ExecuteProgram(Kernel::HLERequestContext& ctx); | ||||
|     void ClearUserChannel(Kernel::HLERequestContext& ctx); | ||||
|     void UnpopToUserChannel(Kernel::HLERequestContext& ctx); | ||||
|     void GetPreviousProgramIndex(Kernel::HLERequestContext& ctx); | ||||
|     void GetGpuErrorDetectedSystemEvent(Kernel::HLERequestContext& ctx); | ||||
|     void GetFriendInvitationStorageChannelEvent(Kernel::HLERequestContext& ctx); | ||||
|     void TryPopFromFriendInvitationStorageChannel(Kernel::HLERequestContext& ctx); | ||||
|     void GetNotificationStorageChannelEvent(Kernel::HLERequestContext& ctx); | ||||
|     void GetHealthWarningDisappearedSystemEvent(Kernel::HLERequestContext& ctx); | ||||
|     void PrepareForJit(Kernel::HLERequestContext& ctx); | ||||
|     void PopLaunchParameter(HLERequestContext& ctx); | ||||
|     void CreateApplicationAndRequestToStartForQuest(HLERequestContext& ctx); | ||||
|     void EnsureSaveData(HLERequestContext& ctx); | ||||
|     void SetTerminateResult(HLERequestContext& ctx); | ||||
|     void GetDisplayVersion(HLERequestContext& ctx); | ||||
|     void GetDesiredLanguage(HLERequestContext& ctx); | ||||
|     void IsGamePlayRecordingSupported(HLERequestContext& ctx); | ||||
|     void InitializeGamePlayRecording(HLERequestContext& ctx); | ||||
|     void SetGamePlayRecordingState(HLERequestContext& ctx); | ||||
|     void NotifyRunning(HLERequestContext& ctx); | ||||
|     void GetPseudoDeviceId(HLERequestContext& ctx); | ||||
|     void ExtendSaveData(HLERequestContext& ctx); | ||||
|     void GetSaveDataSize(HLERequestContext& ctx); | ||||
|     void BeginBlockingHomeButtonShortAndLongPressed(HLERequestContext& ctx); | ||||
|     void EndBlockingHomeButtonShortAndLongPressed(HLERequestContext& ctx); | ||||
|     void BeginBlockingHomeButton(HLERequestContext& ctx); | ||||
|     void EndBlockingHomeButton(HLERequestContext& ctx); | ||||
|     void EnableApplicationCrashReport(HLERequestContext& ctx); | ||||
|     void InitializeApplicationCopyrightFrameBuffer(HLERequestContext& ctx); | ||||
|     void SetApplicationCopyrightImage(HLERequestContext& ctx); | ||||
|     void SetApplicationCopyrightVisibility(HLERequestContext& ctx); | ||||
|     void QueryApplicationPlayStatistics(HLERequestContext& ctx); | ||||
|     void QueryApplicationPlayStatisticsByUid(HLERequestContext& ctx); | ||||
|     void ExecuteProgram(HLERequestContext& ctx); | ||||
|     void ClearUserChannel(HLERequestContext& ctx); | ||||
|     void UnpopToUserChannel(HLERequestContext& ctx); | ||||
|     void GetPreviousProgramIndex(HLERequestContext& ctx); | ||||
|     void GetGpuErrorDetectedSystemEvent(HLERequestContext& ctx); | ||||
|     void GetFriendInvitationStorageChannelEvent(HLERequestContext& ctx); | ||||
|     void TryPopFromFriendInvitationStorageChannel(HLERequestContext& ctx); | ||||
|     void GetNotificationStorageChannelEvent(HLERequestContext& ctx); | ||||
|     void GetHealthWarningDisappearedSystemEvent(HLERequestContext& ctx); | ||||
|     void PrepareForJit(HLERequestContext& ctx); | ||||
|  | ||||
|     KernelHelpers::ServiceContext service_context; | ||||
|  | ||||
| @@ -370,8 +371,8 @@ public: | ||||
|     ~IHomeMenuFunctions() override; | ||||
|  | ||||
| private: | ||||
|     void RequestToGetForeground(Kernel::HLERequestContext& ctx); | ||||
|     void GetPopFromGeneralChannelEvent(Kernel::HLERequestContext& ctx); | ||||
|     void RequestToGetForeground(HLERequestContext& ctx); | ||||
|     void GetPopFromGeneralChannelEvent(HLERequestContext& ctx); | ||||
|  | ||||
|     KernelHelpers::ServiceContext service_context; | ||||
|  | ||||
|   | ||||
| @@ -3,9 +3,9 @@ | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/am/am.h" | ||||
| #include "core/hle/service/am/applet_ae.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nvflinger/nvflinger.h" | ||||
|  | ||||
| namespace Service::AM { | ||||
| @@ -36,7 +36,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetCommonStateGetter(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCommonStateGetter(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -44,7 +44,7 @@ private: | ||||
|         rb.PushIpcInterface<ICommonStateGetter>(system, msg_queue); | ||||
|     } | ||||
|  | ||||
|     void GetSelfController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSelfController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -52,7 +52,7 @@ private: | ||||
|         rb.PushIpcInterface<ISelfController>(system, nvflinger); | ||||
|     } | ||||
|  | ||||
|     void GetWindowController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetWindowController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -60,7 +60,7 @@ private: | ||||
|         rb.PushIpcInterface<IWindowController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetAudioController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -68,7 +68,7 @@ private: | ||||
|         rb.PushIpcInterface<IAudioController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetDisplayController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDisplayController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -76,7 +76,7 @@ private: | ||||
|         rb.PushIpcInterface<IDisplayController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetProcessWindingController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetProcessWindingController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -84,7 +84,7 @@ private: | ||||
|         rb.PushIpcInterface<IProcessWindingController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetDebugFunctions(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDebugFunctions(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -92,7 +92,7 @@ private: | ||||
|         rb.PushIpcInterface<IDebugFunctions>(system); | ||||
|     } | ||||
|  | ||||
|     void GetLibraryAppletCreator(Kernel::HLERequestContext& ctx) { | ||||
|     void GetLibraryAppletCreator(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -100,7 +100,7 @@ private: | ||||
|         rb.PushIpcInterface<ILibraryAppletCreator>(system); | ||||
|     } | ||||
|  | ||||
|     void GetApplicationFunctions(Kernel::HLERequestContext& ctx) { | ||||
|     void GetApplicationFunctions(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -140,7 +140,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetCommonStateGetter(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCommonStateGetter(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -148,7 +148,7 @@ private: | ||||
|         rb.PushIpcInterface<ICommonStateGetter>(system, msg_queue); | ||||
|     } | ||||
|  | ||||
|     void GetSelfController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSelfController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -156,7 +156,7 @@ private: | ||||
|         rb.PushIpcInterface<ISelfController>(system, nvflinger); | ||||
|     } | ||||
|  | ||||
|     void GetWindowController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetWindowController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -164,7 +164,7 @@ private: | ||||
|         rb.PushIpcInterface<IWindowController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetAudioController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -172,7 +172,7 @@ private: | ||||
|         rb.PushIpcInterface<IAudioController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetDisplayController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDisplayController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -180,7 +180,7 @@ private: | ||||
|         rb.PushIpcInterface<IDisplayController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetDebugFunctions(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDebugFunctions(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -188,7 +188,7 @@ private: | ||||
|         rb.PushIpcInterface<IDebugFunctions>(system); | ||||
|     } | ||||
|  | ||||
|     void GetLibraryAppletCreator(Kernel::HLERequestContext& ctx) { | ||||
|     void GetLibraryAppletCreator(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -196,7 +196,7 @@ private: | ||||
|         rb.PushIpcInterface<ILibraryAppletCreator>(system); | ||||
|     } | ||||
|  | ||||
|     void GetHomeMenuFunctions(Kernel::HLERequestContext& ctx) { | ||||
|     void GetHomeMenuFunctions(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -204,7 +204,7 @@ private: | ||||
|         rb.PushIpcInterface<IHomeMenuFunctions>(system); | ||||
|     } | ||||
|  | ||||
|     void GetGlobalStateController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetGlobalStateController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -212,7 +212,7 @@ private: | ||||
|         rb.PushIpcInterface<IGlobalStateController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetApplicationCreator(Kernel::HLERequestContext& ctx) { | ||||
|     void GetApplicationCreator(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -224,7 +224,7 @@ private: | ||||
|     std::shared_ptr<AppletMessageQueue> msg_queue; | ||||
| }; | ||||
|  | ||||
| void AppletAE::OpenSystemAppletProxy(Kernel::HLERequestContext& ctx) { | ||||
| void AppletAE::OpenSystemAppletProxy(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -232,7 +232,7 @@ void AppletAE::OpenSystemAppletProxy(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<ISystemAppletProxy>(nvflinger, msg_queue, system); | ||||
| } | ||||
|  | ||||
| void AppletAE::OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx) { | ||||
| void AppletAE::OpenLibraryAppletProxy(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -240,7 +240,7 @@ void AppletAE::OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger, msg_queue, system); | ||||
| } | ||||
|  | ||||
| void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) { | ||||
| void AppletAE::OpenLibraryAppletProxyOld(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -29,9 +29,9 @@ public: | ||||
|     const std::shared_ptr<AppletMessageQueue>& GetMessageQueue() const; | ||||
|  | ||||
| private: | ||||
|     void OpenSystemAppletProxy(Kernel::HLERequestContext& ctx); | ||||
|     void OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx); | ||||
|     void OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx); | ||||
|     void OpenSystemAppletProxy(HLERequestContext& ctx); | ||||
|     void OpenLibraryAppletProxy(HLERequestContext& ctx); | ||||
|     void OpenLibraryAppletProxyOld(HLERequestContext& ctx); | ||||
|  | ||||
|     NVFlinger::NVFlinger& nvflinger; | ||||
|     std::shared_ptr<AppletMessageQueue> msg_queue; | ||||
|   | ||||
| @@ -2,9 +2,9 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/am/am.h" | ||||
| #include "core/hle/service/am/applet_oe.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nvflinger/nvflinger.h" | ||||
|  | ||||
| namespace Service::AM { | ||||
| @@ -34,7 +34,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetAudioController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -42,7 +42,7 @@ private: | ||||
|         rb.PushIpcInterface<IAudioController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetDisplayController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDisplayController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -50,7 +50,7 @@ private: | ||||
|         rb.PushIpcInterface<IDisplayController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetDebugFunctions(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDebugFunctions(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -58,7 +58,7 @@ private: | ||||
|         rb.PushIpcInterface<IDebugFunctions>(system); | ||||
|     } | ||||
|  | ||||
|     void GetWindowController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetWindowController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -66,7 +66,7 @@ private: | ||||
|         rb.PushIpcInterface<IWindowController>(system); | ||||
|     } | ||||
|  | ||||
|     void GetSelfController(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSelfController(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -74,7 +74,7 @@ private: | ||||
|         rb.PushIpcInterface<ISelfController>(system, nvflinger); | ||||
|     } | ||||
|  | ||||
|     void GetCommonStateGetter(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCommonStateGetter(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -82,7 +82,7 @@ private: | ||||
|         rb.PushIpcInterface<ICommonStateGetter>(system, msg_queue); | ||||
|     } | ||||
|  | ||||
|     void GetLibraryAppletCreator(Kernel::HLERequestContext& ctx) { | ||||
|     void GetLibraryAppletCreator(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -90,7 +90,7 @@ private: | ||||
|         rb.PushIpcInterface<ILibraryAppletCreator>(system); | ||||
|     } | ||||
|  | ||||
|     void GetApplicationFunctions(Kernel::HLERequestContext& ctx) { | ||||
|     void GetApplicationFunctions(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -102,7 +102,7 @@ private: | ||||
|     std::shared_ptr<AppletMessageQueue> msg_queue; | ||||
| }; | ||||
|  | ||||
| void AppletOE::OpenApplicationProxy(Kernel::HLERequestContext& ctx) { | ||||
| void AppletOE::OpenApplicationProxy(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -29,7 +29,7 @@ public: | ||||
|     const std::shared_ptr<AppletMessageQueue>& GetMessageQueue() const; | ||||
|  | ||||
| private: | ||||
|     void OpenApplicationProxy(Kernel::HLERequestContext& ctx); | ||||
|     void OpenApplicationProxy(HLERequestContext& ctx); | ||||
|  | ||||
|     NVFlinger::NVFlinger& nvflinger; | ||||
|     std::shared_ptr<AppletMessageQueue> msg_queue; | ||||
|   | ||||
| @@ -14,9 +14,9 @@ | ||||
| #include "core/file_sys/nca_metadata.h" | ||||
| #include "core/file_sys/patch_manager.h" | ||||
| #include "core/file_sys/registered_cache.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/aoc/aoc_u.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/loader/loader.h" | ||||
|  | ||||
| @@ -69,7 +69,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void SetDefaultDeliveryTarget(Kernel::HLERequestContext& ctx) { | ||||
|     void SetDefaultDeliveryTarget(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto unknown_1 = rp.Pop<u64>(); | ||||
| @@ -81,7 +81,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SetDeliveryTarget(Kernel::HLERequestContext& ctx) { | ||||
|     void SetDeliveryTarget(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto unknown_1 = rp.Pop<u64>(); | ||||
| @@ -93,7 +93,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetPurchasedEventReadableHandle(Kernel::HLERequestContext& ctx) { | ||||
|     void GetPurchasedEventReadableHandle(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_AOC, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -145,7 +145,7 @@ AOC_U::~AOC_U() { | ||||
|     service_context.CloseEvent(aoc_change_event); | ||||
| } | ||||
|  | ||||
| void AOC_U::CountAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::CountAddOnContent(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         u64 process_id; | ||||
|     }; | ||||
| @@ -172,7 +172,7 @@ void AOC_U::CountAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
|                       [current](u64 tid) { return CheckAOCTitleIDMatchesBase(tid, current); }))); | ||||
| } | ||||
|  | ||||
| void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::ListAddOnContent(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         u32 offset; | ||||
|         u32 count; | ||||
| @@ -218,7 +218,7 @@ void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(out_count); | ||||
| } | ||||
|  | ||||
| void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::GetAddOnContentBaseId(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         u64 process_id; | ||||
|     }; | ||||
| @@ -245,7 +245,7 @@ void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(res.first->GetDLCBaseTitleId()); | ||||
| } | ||||
|  | ||||
| void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::PrepareAddOnContent(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         s32 addon_index; | ||||
|         u64 process_id; | ||||
| @@ -262,7 +262,7 @@ void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void AOC_U::GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::GetAddOnContentListChangedEvent(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -270,7 +270,7 @@ void AOC_U::GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(aoc_change_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void AOC_U::GetAddOnContentListChangedEventWithProcessId(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::GetAddOnContentListChangedEventWithProcessId(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -278,28 +278,28 @@ void AOC_U::GetAddOnContentListChangedEventWithProcessId(Kernel::HLERequestConte | ||||
|     rb.PushCopyObjects(aoc_change_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void AOC_U::NotifyMountAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::NotifyMountAddOnContent(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void AOC_U::NotifyUnmountAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::NotifyUnmountAddOnContent(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void AOC_U::CheckAddOnContentMountStatus(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::CheckAddOnContentMountStatus(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void AOC_U::CreateEcPurchasedEventManager(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::CreateEcPurchasedEventManager(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -307,7 +307,7 @@ void AOC_U::CreateEcPurchasedEventManager(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IPurchaseEventManager>(system); | ||||
| } | ||||
|  | ||||
| void AOC_U::CreatePermanentEcPurchasedEventManager(Kernel::HLERequestContext& ctx) { | ||||
| void AOC_U::CreatePermanentEcPurchasedEventManager(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AOC, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -22,17 +22,17 @@ public: | ||||
|     ~AOC_U() override; | ||||
|  | ||||
| private: | ||||
|     void CountAddOnContent(Kernel::HLERequestContext& ctx); | ||||
|     void ListAddOnContent(Kernel::HLERequestContext& ctx); | ||||
|     void GetAddOnContentBaseId(Kernel::HLERequestContext& ctx); | ||||
|     void PrepareAddOnContent(Kernel::HLERequestContext& ctx); | ||||
|     void GetAddOnContentListChangedEvent(Kernel::HLERequestContext& ctx); | ||||
|     void GetAddOnContentListChangedEventWithProcessId(Kernel::HLERequestContext& ctx); | ||||
|     void NotifyMountAddOnContent(Kernel::HLERequestContext& ctx); | ||||
|     void NotifyUnmountAddOnContent(Kernel::HLERequestContext& ctx); | ||||
|     void CheckAddOnContentMountStatus(Kernel::HLERequestContext& ctx); | ||||
|     void CreateEcPurchasedEventManager(Kernel::HLERequestContext& ctx); | ||||
|     void CreatePermanentEcPurchasedEventManager(Kernel::HLERequestContext& ctx); | ||||
|     void CountAddOnContent(HLERequestContext& ctx); | ||||
|     void ListAddOnContent(HLERequestContext& ctx); | ||||
|     void GetAddOnContentBaseId(HLERequestContext& ctx); | ||||
|     void PrepareAddOnContent(HLERequestContext& ctx); | ||||
|     void GetAddOnContentListChangedEvent(HLERequestContext& ctx); | ||||
|     void GetAddOnContentListChangedEventWithProcessId(HLERequestContext& ctx); | ||||
|     void NotifyMountAddOnContent(HLERequestContext& ctx); | ||||
|     void NotifyUnmountAddOnContent(HLERequestContext& ctx); | ||||
|     void CheckAddOnContentMountStatus(HLERequestContext& ctx); | ||||
|     void CreateEcPurchasedEventManager(HLERequestContext& ctx); | ||||
|     void CreatePermanentEcPurchasedEventManager(HLERequestContext& ctx); | ||||
|  | ||||
|     std::vector<u64> add_on_content; | ||||
|     KernelHelpers::ServiceContext service_context; | ||||
|   | ||||
| @@ -2,10 +2,10 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/apm/apm.h" | ||||
| #include "core/hle/service/apm/apm_controller.h" | ||||
| #include "core/hle/service/apm/apm_interface.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::APM { | ||||
|  | ||||
| @@ -22,7 +22,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void SetPerformanceConfiguration(Kernel::HLERequestContext& ctx) { | ||||
|     void SetPerformanceConfiguration(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto mode = rp.PopEnum<PerformanceMode>(); | ||||
| @@ -35,7 +35,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetPerformanceConfiguration(Kernel::HLERequestContext& ctx) { | ||||
|     void GetPerformanceConfiguration(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto mode = rp.PopEnum<PerformanceMode>(); | ||||
| @@ -46,7 +46,7 @@ private: | ||||
|         rb.PushEnum(controller.GetCurrentPerformanceConfiguration(mode)); | ||||
|     } | ||||
|  | ||||
|     void SetCpuOverclockEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     void SetCpuOverclockEnabled(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto cpu_overclock_enabled = rp.Pop<bool>(); | ||||
| @@ -74,7 +74,7 @@ APM::APM(Core::System& system_, std::shared_ptr<Module> apm_, Controller& contro | ||||
|  | ||||
| APM::~APM() = default; | ||||
|  | ||||
| void APM::OpenSession(Kernel::HLERequestContext& ctx) { | ||||
| void APM::OpenSession(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_APM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -82,14 +82,14 @@ void APM::OpenSession(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<ISession>(system, controller); | ||||
| } | ||||
|  | ||||
| void APM::GetPerformanceMode(Kernel::HLERequestContext& ctx) { | ||||
| void APM::GetPerformanceMode(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_APM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.PushEnum(controller.GetCurrentPerformanceMode()); | ||||
| } | ||||
|  | ||||
| void APM::IsCpuOverclockEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void APM::IsCpuOverclockEnabled(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_APM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -117,7 +117,7 @@ APM_Sys::APM_Sys(Core::System& system_, Controller& controller_) | ||||
|  | ||||
| APM_Sys::~APM_Sys() = default; | ||||
|  | ||||
| void APM_Sys::GetPerformanceEvent(Kernel::HLERequestContext& ctx) { | ||||
| void APM_Sys::GetPerformanceEvent(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_APM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -125,7 +125,7 @@ void APM_Sys::GetPerformanceEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<ISession>(system, controller); | ||||
| } | ||||
|  | ||||
| void APM_Sys::SetCpuBoostMode(Kernel::HLERequestContext& ctx) { | ||||
| void APM_Sys::SetCpuBoostMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto mode = rp.PopEnum<CpuBoostMode>(); | ||||
|  | ||||
| @@ -137,7 +137,7 @@ void APM_Sys::SetCpuBoostMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void APM_Sys::GetCurrentPerformanceConfiguration(Kernel::HLERequestContext& ctx) { | ||||
| void APM_Sys::GetCurrentPerformanceConfiguration(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_APM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|   | ||||
| @@ -17,9 +17,9 @@ public: | ||||
|     ~APM() override; | ||||
|  | ||||
| private: | ||||
|     void OpenSession(Kernel::HLERequestContext& ctx); | ||||
|     void GetPerformanceMode(Kernel::HLERequestContext& ctx); | ||||
|     void IsCpuOverclockEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void OpenSession(HLERequestContext& ctx); | ||||
|     void GetPerformanceMode(HLERequestContext& ctx); | ||||
|     void IsCpuOverclockEnabled(HLERequestContext& ctx); | ||||
|  | ||||
|     std::shared_ptr<Module> apm; | ||||
|     Controller& controller; | ||||
| @@ -30,11 +30,11 @@ public: | ||||
|     explicit APM_Sys(Core::System& system_, Controller& controller); | ||||
|     ~APM_Sys() override; | ||||
|  | ||||
|     void SetCpuBoostMode(Kernel::HLERequestContext& ctx); | ||||
|     void SetCpuBoostMode(HLERequestContext& ctx); | ||||
|  | ||||
| private: | ||||
|     void GetPerformanceEvent(Kernel::HLERequestContext& ctx); | ||||
|     void GetCurrentPerformanceConfiguration(Kernel::HLERequestContext& ctx); | ||||
|     void GetPerformanceEvent(HLERequestContext& ctx); | ||||
|     void GetCurrentPerformanceConfiguration(HLERequestContext& ctx); | ||||
|  | ||||
|     Controller& controller; | ||||
| }; | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/audio/audctl.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Audio { | ||||
|  | ||||
| @@ -72,7 +72,7 @@ AudCtl::AudCtl(Core::System& system_) : ServiceFramework{system_, "audctl"} { | ||||
|  | ||||
| AudCtl::~AudCtl() = default; | ||||
|  | ||||
| void AudCtl::GetTargetVolumeMin(Kernel::HLERequestContext& ctx) { | ||||
| void AudCtl::GetTargetVolumeMin(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Audio, "called."); | ||||
|  | ||||
|     // This service function is currently hardcoded on the | ||||
| @@ -84,7 +84,7 @@ void AudCtl::GetTargetVolumeMin(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(target_min_volume); | ||||
| } | ||||
|  | ||||
| void AudCtl::GetTargetVolumeMax(Kernel::HLERequestContext& ctx) { | ||||
| void AudCtl::GetTargetVolumeMax(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Audio, "called."); | ||||
|  | ||||
|     // This service function is currently hardcoded on the | ||||
|   | ||||
| @@ -17,8 +17,8 @@ public: | ||||
|     ~AudCtl() override; | ||||
|  | ||||
| private: | ||||
|     void GetTargetVolumeMin(Kernel::HLERequestContext& ctx); | ||||
|     void GetTargetVolumeMax(Kernel::HLERequestContext& ctx); | ||||
|     void GetTargetVolumeMin(HLERequestContext& ctx); | ||||
|     void GetTargetVolumeMax(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::Audio | ||||
|   | ||||
| @@ -7,9 +7,9 @@ | ||||
| #include "common/logging/log.h" | ||||
| #include "common/string_util.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/audio/audin_u.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Audio { | ||||
| using namespace AudioCore::AudioIn; | ||||
| @@ -61,7 +61,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetAudioInState(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioInState(HLERequestContext& ctx) { | ||||
|         const auto state = static_cast<u32>(impl->GetState()); | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. State={}", state); | ||||
| @@ -71,7 +71,7 @@ private: | ||||
|         rb.Push(state); | ||||
|     } | ||||
|  | ||||
|     void Start(Kernel::HLERequestContext& ctx) { | ||||
|     void Start(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto result = impl->StartSystem(); | ||||
| @@ -80,7 +80,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void Stop(Kernel::HLERequestContext& ctx) { | ||||
|     void Stop(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto result = impl->StopSystem(); | ||||
| @@ -89,7 +89,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void AppendAudioInBuffer(Kernel::HLERequestContext& ctx) { | ||||
|     void AppendAudioInBuffer(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u64 tag = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -111,7 +111,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void RegisterBufferEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void RegisterBufferEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto& buffer_event = impl->GetBufferEvent(); | ||||
| @@ -121,7 +121,7 @@ private: | ||||
|         rb.PushCopyObjects(buffer_event); | ||||
|     } | ||||
|  | ||||
|     void GetReleasedAudioInBuffer(Kernel::HLERequestContext& ctx) { | ||||
|     void GetReleasedAudioInBuffer(HLERequestContext& ctx) { | ||||
|         const auto write_buffer_size = ctx.GetWriteBufferNumElements<u64>(); | ||||
|         std::vector<u64> released_buffers(write_buffer_size); | ||||
|  | ||||
| @@ -141,7 +141,7 @@ private: | ||||
|         rb.Push(count); | ||||
|     } | ||||
|  | ||||
|     void ContainsAudioInBuffer(Kernel::HLERequestContext& ctx) { | ||||
|     void ContainsAudioInBuffer(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const u64 tag{rp.Pop<u64>()}; | ||||
| @@ -154,7 +154,7 @@ private: | ||||
|         rb.Push(buffer_queued); | ||||
|     } | ||||
|  | ||||
|     void GetAudioInBufferCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioInBufferCount(HLERequestContext& ctx) { | ||||
|         const auto buffer_count = impl->GetBufferCount(); | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Buffer count={}", buffer_count); | ||||
| @@ -165,7 +165,7 @@ private: | ||||
|         rb.Push(buffer_count); | ||||
|     } | ||||
|  | ||||
|     void SetDeviceGain(Kernel::HLERequestContext& ctx) { | ||||
|     void SetDeviceGain(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto volume{rp.Pop<f32>()}; | ||||
| @@ -177,7 +177,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetDeviceGain(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDeviceGain(HLERequestContext& ctx) { | ||||
|         auto volume{impl->GetVolume()}; | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Gain {}", volume); | ||||
| @@ -187,7 +187,7 @@ private: | ||||
|         rb.Push(volume); | ||||
|     } | ||||
|  | ||||
|     void FlushAudioInBuffers(Kernel::HLERequestContext& ctx) { | ||||
|     void FlushAudioInBuffers(HLERequestContext& ctx) { | ||||
|         bool flushed{impl->FlushAudioInBuffers()}; | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Were any buffers flushed? {}", flushed); | ||||
| @@ -221,7 +221,7 @@ AudInU::AudInU(Core::System& system_) | ||||
|  | ||||
| AudInU::~AudInU() = default; | ||||
|  | ||||
| void AudInU::ListAudioIns(Kernel::HLERequestContext& ctx) { | ||||
| void AudInU::ListAudioIns(HLERequestContext& ctx) { | ||||
|     using namespace AudioCore::AudioRenderer; | ||||
|  | ||||
|     LOG_DEBUG(Service_Audio, "called"); | ||||
| @@ -241,7 +241,7 @@ void AudInU::ListAudioIns(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(out_count); | ||||
| } | ||||
|  | ||||
| void AudInU::ListAudioInsAutoFiltered(Kernel::HLERequestContext& ctx) { | ||||
| void AudInU::ListAudioInsAutoFiltered(HLERequestContext& ctx) { | ||||
|     using namespace AudioCore::AudioRenderer; | ||||
|  | ||||
|     LOG_DEBUG(Service_Audio, "called"); | ||||
| @@ -261,7 +261,7 @@ void AudInU::ListAudioInsAutoFiltered(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(out_count); | ||||
| } | ||||
|  | ||||
| void AudInU::OpenAudioIn(Kernel::HLERequestContext& ctx) { | ||||
| void AudInU::OpenAudioIn(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     auto in_params{rp.PopRaw<AudioInParameter>()}; | ||||
|     auto applet_resource_user_id{rp.PopRaw<u64>()}; | ||||
| @@ -311,7 +311,7 @@ void AudInU::OpenAudioIn(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IAudioIn>(audio_in); | ||||
| } | ||||
|  | ||||
| void AudInU::OpenAudioInProtocolSpecified(Kernel::HLERequestContext& ctx) { | ||||
| void AudInU::OpenAudioInProtocolSpecified(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     auto protocol_specified{rp.PopRaw<u64>()}; | ||||
|     auto in_params{rp.PopRaw<AudioInParameter>()}; | ||||
|   | ||||
| @@ -12,10 +12,6 @@ namespace Core { | ||||
| class System; | ||||
| } | ||||
|  | ||||
| namespace Kernel { | ||||
| class HLERequestContext; | ||||
| } | ||||
|  | ||||
| namespace AudioCore::AudioOut { | ||||
| class Manager; | ||||
| class In; | ||||
| @@ -29,11 +25,11 @@ public: | ||||
|     ~AudInU() override; | ||||
|  | ||||
| private: | ||||
|     void ListAudioIns(Kernel::HLERequestContext& ctx); | ||||
|     void ListAudioInsAutoFiltered(Kernel::HLERequestContext& ctx); | ||||
|     void OpenInOutImpl(Kernel::HLERequestContext& ctx); | ||||
|     void OpenAudioIn(Kernel::HLERequestContext& ctx); | ||||
|     void OpenAudioInProtocolSpecified(Kernel::HLERequestContext& ctx); | ||||
|     void ListAudioIns(HLERequestContext& ctx); | ||||
|     void ListAudioInsAutoFiltered(HLERequestContext& ctx); | ||||
|     void OpenInOutImpl(HLERequestContext& ctx); | ||||
|     void OpenAudioIn(HLERequestContext& ctx); | ||||
|     void OpenAudioInProtocolSpecified(HLERequestContext& ctx); | ||||
|  | ||||
|     KernelHelpers::ServiceContext service_context; | ||||
|     std::unique_ptr<AudioCore::AudioIn::Manager> impl; | ||||
|   | ||||
| @@ -12,10 +12,10 @@ | ||||
| #include "common/string_util.h" | ||||
| #include "common/swap.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/audio/audout_u.h" | ||||
| #include "core/hle/service/audio/errors.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/memory.h" | ||||
|  | ||||
| namespace Service::Audio { | ||||
| @@ -67,7 +67,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetAudioOutState(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioOutState(HLERequestContext& ctx) { | ||||
|         const auto state = static_cast<u32>(impl->GetState()); | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. State={}", state); | ||||
| @@ -77,7 +77,7 @@ private: | ||||
|         rb.Push(state); | ||||
|     } | ||||
|  | ||||
|     void Start(Kernel::HLERequestContext& ctx) { | ||||
|     void Start(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto result = impl->StartSystem(); | ||||
| @@ -86,7 +86,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void Stop(Kernel::HLERequestContext& ctx) { | ||||
|     void Stop(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto result = impl->StopSystem(); | ||||
| @@ -95,7 +95,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void AppendAudioOutBuffer(Kernel::HLERequestContext& ctx) { | ||||
|     void AppendAudioOutBuffer(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u64 tag = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -117,7 +117,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void RegisterBufferEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void RegisterBufferEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto& buffer_event = impl->GetBufferEvent(); | ||||
| @@ -127,7 +127,7 @@ private: | ||||
|         rb.PushCopyObjects(buffer_event); | ||||
|     } | ||||
|  | ||||
|     void GetReleasedAudioOutBuffers(Kernel::HLERequestContext& ctx) { | ||||
|     void GetReleasedAudioOutBuffers(HLERequestContext& ctx) { | ||||
|         const auto write_buffer_size = ctx.GetWriteBufferNumElements<u64>(); | ||||
|         std::vector<u64> released_buffers(write_buffer_size); | ||||
|  | ||||
| @@ -147,7 +147,7 @@ private: | ||||
|         rb.Push(count); | ||||
|     } | ||||
|  | ||||
|     void ContainsAudioOutBuffer(Kernel::HLERequestContext& ctx) { | ||||
|     void ContainsAudioOutBuffer(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const u64 tag{rp.Pop<u64>()}; | ||||
| @@ -160,7 +160,7 @@ private: | ||||
|         rb.Push(buffer_queued); | ||||
|     } | ||||
|  | ||||
|     void GetAudioOutBufferCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioOutBufferCount(HLERequestContext& ctx) { | ||||
|         const auto buffer_count = impl->GetBufferCount(); | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Buffer count={}", buffer_count); | ||||
| @@ -171,7 +171,7 @@ private: | ||||
|         rb.Push(buffer_count); | ||||
|     } | ||||
|  | ||||
|     void GetAudioOutPlayedSampleCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioOutPlayedSampleCount(HLERequestContext& ctx) { | ||||
|         const auto samples_played = impl->GetPlayedSampleCount(); | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Played samples={}", samples_played); | ||||
| @@ -182,7 +182,7 @@ private: | ||||
|         rb.Push(samples_played); | ||||
|     } | ||||
|  | ||||
|     void FlushAudioOutBuffers(Kernel::HLERequestContext& ctx) { | ||||
|     void FlushAudioOutBuffers(HLERequestContext& ctx) { | ||||
|         bool flushed{impl->FlushAudioOutBuffers()}; | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Were any buffers flushed? {}", flushed); | ||||
| @@ -192,7 +192,7 @@ private: | ||||
|         rb.Push(flushed); | ||||
|     } | ||||
|  | ||||
|     void SetAudioOutVolume(Kernel::HLERequestContext& ctx) { | ||||
|     void SetAudioOutVolume(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto volume = rp.Pop<f32>(); | ||||
|  | ||||
| @@ -204,7 +204,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetAudioOutVolume(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioOutVolume(HLERequestContext& ctx) { | ||||
|         const auto volume = impl->GetVolume(); | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Volume={}", volume); | ||||
| @@ -236,7 +236,7 @@ AudOutU::AudOutU(Core::System& system_) | ||||
|  | ||||
| AudOutU::~AudOutU() = default; | ||||
|  | ||||
| void AudOutU::ListAudioOuts(Kernel::HLERequestContext& ctx) { | ||||
| void AudOutU::ListAudioOuts(HLERequestContext& ctx) { | ||||
|     using namespace AudioCore::AudioRenderer; | ||||
|  | ||||
|     std::scoped_lock l{impl->mutex}; | ||||
| @@ -258,7 +258,7 @@ void AudOutU::ListAudioOuts(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u32>(static_cast<u32>(device_names.size())); | ||||
| } | ||||
|  | ||||
| void AudOutU::OpenAudioOut(Kernel::HLERequestContext& ctx) { | ||||
| void AudOutU::OpenAudioOut(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     auto in_params{rp.PopRaw<AudioOutParameter>()}; | ||||
|     auto applet_resource_user_id{rp.PopRaw<u64>()}; | ||||
|   | ||||
| @@ -12,10 +12,6 @@ namespace Core { | ||||
| class System; | ||||
| } | ||||
|  | ||||
| namespace Kernel { | ||||
| class HLERequestContext; | ||||
| } | ||||
|  | ||||
| namespace AudioCore::AudioOut { | ||||
| class Manager; | ||||
| class Out; | ||||
| @@ -31,8 +27,8 @@ public: | ||||
|     ~AudOutU() override; | ||||
|  | ||||
| private: | ||||
|     void ListAudioOuts(Kernel::HLERequestContext& ctx); | ||||
|     void OpenAudioOut(Kernel::HLERequestContext& ctx); | ||||
|     void ListAudioOuts(HLERequestContext& ctx); | ||||
|     void OpenAudioOut(HLERequestContext& ctx); | ||||
|  | ||||
|     KernelHelpers::ServiceContext service_context; | ||||
|     std::unique_ptr<AudioCore::AudioOut::Manager> impl; | ||||
|   | ||||
| @@ -17,12 +17,12 @@ | ||||
| #include "common/polyfill_ranges.h" | ||||
| #include "common/string_util.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/kernel/k_process.h" | ||||
| #include "core/hle/kernel/k_transfer_memory.h" | ||||
| #include "core/hle/service/audio/audren_u.h" | ||||
| #include "core/hle/service/audio/errors.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/memory.h" | ||||
|  | ||||
| using namespace AudioCore::AudioRenderer; | ||||
| @@ -68,7 +68,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetSampleRate(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSampleRate(HLERequestContext& ctx) { | ||||
|         const auto sample_rate{impl->GetSystem().GetSampleRate()}; | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Sample rate {}", sample_rate); | ||||
| @@ -78,7 +78,7 @@ private: | ||||
|         rb.Push(sample_rate); | ||||
|     } | ||||
|  | ||||
|     void GetSampleCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSampleCount(HLERequestContext& ctx) { | ||||
|         const auto sample_count{impl->GetSystem().GetSampleCount()}; | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called. Sample count {}", sample_count); | ||||
| @@ -88,7 +88,7 @@ private: | ||||
|         rb.Push(sample_count); | ||||
|     } | ||||
|  | ||||
|     void GetState(Kernel::HLERequestContext& ctx) { | ||||
|     void GetState(HLERequestContext& ctx) { | ||||
|         const u32 state{!impl->GetSystem().IsActive()}; | ||||
|  | ||||
|         LOG_DEBUG(Service_Audio, "called, state {}", state); | ||||
| @@ -98,7 +98,7 @@ private: | ||||
|         rb.Push(state); | ||||
|     } | ||||
|  | ||||
|     void GetMixBufferCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetMixBufferCount(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         const auto buffer_count{impl->GetSystem().GetMixBufferCount()}; | ||||
| @@ -108,7 +108,7 @@ private: | ||||
|         rb.Push(buffer_count); | ||||
|     } | ||||
|  | ||||
|     void RequestUpdate(Kernel::HLERequestContext& ctx) { | ||||
|     void RequestUpdate(HLERequestContext& ctx) { | ||||
|         LOG_TRACE(Service_Audio, "called"); | ||||
|  | ||||
|         const auto input{ctx.ReadBuffer(0)}; | ||||
| @@ -147,7 +147,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void Start(Kernel::HLERequestContext& ctx) { | ||||
|     void Start(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         impl->Start(); | ||||
| @@ -156,7 +156,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Stop(Kernel::HLERequestContext& ctx) { | ||||
|     void Stop(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         impl->Stop(); | ||||
| @@ -165,7 +165,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void QuerySystemEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void QuerySystemEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         if (impl->GetSystem().GetExecutionMode() == AudioCore::ExecutionMode::Manual) { | ||||
| @@ -179,7 +179,7 @@ private: | ||||
|         rb.PushCopyObjects(rendered_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void SetRenderingTimeLimit(Kernel::HLERequestContext& ctx) { | ||||
|     void SetRenderingTimeLimit(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         IPC::RequestParser rp{ctx}; | ||||
| @@ -192,7 +192,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetRenderingTimeLimit(Kernel::HLERequestContext& ctx) { | ||||
|     void GetRenderingTimeLimit(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto& system_ = impl->GetSystem(); | ||||
| @@ -203,11 +203,11 @@ private: | ||||
|         rb.Push(time); | ||||
|     } | ||||
|  | ||||
|     void ExecuteAudioRendererRendering(Kernel::HLERequestContext& ctx) { | ||||
|     void ExecuteAudioRendererRendering(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|     } | ||||
|  | ||||
|     void SetVoiceDropParameter(Kernel::HLERequestContext& ctx) { | ||||
|     void SetVoiceDropParameter(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         IPC::RequestParser rp{ctx}; | ||||
| @@ -220,7 +220,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetVoiceDropParameter(Kernel::HLERequestContext& ctx) { | ||||
|     void GetVoiceDropParameter(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         auto& system_ = impl->GetSystem(); | ||||
| @@ -271,7 +271,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void ListAudioDeviceName(Kernel::HLERequestContext& ctx) { | ||||
|     void ListAudioDeviceName(HLERequestContext& ctx) { | ||||
|         const size_t in_count = ctx.GetWriteBufferNumElements<AudioDevice::AudioDeviceName>(); | ||||
|  | ||||
|         std::vector<AudioDevice::AudioDeviceName> out_names{}; | ||||
| @@ -299,7 +299,7 @@ private: | ||||
|         rb.Push(out_count); | ||||
|     } | ||||
|  | ||||
|     void SetAudioDeviceOutputVolume(Kernel::HLERequestContext& ctx) { | ||||
|     void SetAudioDeviceOutputVolume(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const f32 volume = rp.Pop<f32>(); | ||||
|  | ||||
| @@ -316,7 +316,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetAudioDeviceOutputVolume(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAudioDeviceOutputVolume(HLERequestContext& ctx) { | ||||
|         const auto device_name_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(device_name_buffer); | ||||
|  | ||||
| @@ -332,7 +332,7 @@ private: | ||||
|         rb.Push(volume); | ||||
|     } | ||||
|  | ||||
|     void GetActiveAudioDeviceName(Kernel::HLERequestContext& ctx) { | ||||
|     void GetActiveAudioDeviceName(HLERequestContext& ctx) { | ||||
|         const auto write_size = ctx.GetWriteBufferSize(); | ||||
|         std::string out_name{"AudioTvOutput"}; | ||||
|  | ||||
| @@ -346,7 +346,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void QueryAudioDeviceSystemEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void QueryAudioDeviceSystemEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "(STUBBED) called"); | ||||
|  | ||||
|         event->Signal(); | ||||
| @@ -356,7 +356,7 @@ private: | ||||
|         rb.PushCopyObjects(event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void GetActiveChannelCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetActiveChannelCount(HLERequestContext& ctx) { | ||||
|         const auto& sink{system.AudioCore().GetOutputSink()}; | ||||
|         u32 channel_count{sink.GetDeviceChannels()}; | ||||
|  | ||||
| @@ -368,7 +368,7 @@ private: | ||||
|         rb.Push<u32>(channel_count); | ||||
|     } | ||||
|  | ||||
|     void QueryAudioDeviceInputEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void QueryAudioDeviceInputEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -376,7 +376,7 @@ private: | ||||
|         rb.PushCopyObjects(event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void QueryAudioDeviceOutputEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void QueryAudioDeviceOutputEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Audio, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -384,7 +384,7 @@ private: | ||||
|         rb.PushCopyObjects(event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void ListAudioOutputDeviceName(Kernel::HLERequestContext& ctx) { | ||||
|     void ListAudioOutputDeviceName(HLERequestContext& ctx) { | ||||
|         const size_t in_count = ctx.GetWriteBufferNumElements<AudioDevice::AudioDeviceName>(); | ||||
|  | ||||
|         std::vector<AudioDevice::AudioDeviceName> out_names{}; | ||||
| @@ -435,7 +435,7 @@ AudRenU::AudRenU(Core::System& system_) | ||||
|  | ||||
| AudRenU::~AudRenU() = default; | ||||
|  | ||||
| void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) { | ||||
| void AudRenU::OpenAudioRenderer(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     AudioCore::AudioRendererParameterInternal params; | ||||
| @@ -475,7 +475,7 @@ void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) { | ||||
|                                         applet_resource_user_id, session_id); | ||||
| } | ||||
|  | ||||
| void AudRenU::GetWorkBufferSize(Kernel::HLERequestContext& ctx) { | ||||
| void AudRenU::GetWorkBufferSize(HLERequestContext& ctx) { | ||||
|     AudioCore::AudioRendererParameterInternal params; | ||||
|  | ||||
|     IPC::RequestParser rp{ctx}; | ||||
| @@ -506,7 +506,7 @@ void AudRenU::GetWorkBufferSize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u64>(size); | ||||
| } | ||||
|  | ||||
| void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) { | ||||
| void AudRenU::GetAudioDeviceService(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const auto applet_resource_user_id = rp.Pop<u64>(); | ||||
| @@ -520,11 +520,11 @@ void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) { | ||||
|                                       ::Common::MakeMagic('R', 'E', 'V', '1'), num_audio_devices++); | ||||
| } | ||||
|  | ||||
| void AudRenU::OpenAudioRendererForManualExecution(Kernel::HLERequestContext& ctx) { | ||||
| void AudRenU::OpenAudioRendererForManualExecution(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_Audio, "called"); | ||||
| } | ||||
|  | ||||
| void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx) { | ||||
| void AudRenU::GetAudioDeviceServiceWithRevisionInfo(HLERequestContext& ctx) { | ||||
|     struct Parameters { | ||||
|         u32 revision; | ||||
|         u64 applet_resource_user_id; | ||||
|   | ||||
| @@ -11,10 +11,6 @@ namespace Core { | ||||
| class System; | ||||
| } | ||||
|  | ||||
| namespace Kernel { | ||||
| class HLERequestContext; | ||||
| } | ||||
|  | ||||
| namespace Service::Audio { | ||||
| class IAudioRenderer; | ||||
|  | ||||
| @@ -24,11 +20,11 @@ public: | ||||
|     ~AudRenU() override; | ||||
|  | ||||
| private: | ||||
|     void OpenAudioRenderer(Kernel::HLERequestContext& ctx); | ||||
|     void GetWorkBufferSize(Kernel::HLERequestContext& ctx); | ||||
|     void GetAudioDeviceService(Kernel::HLERequestContext& ctx); | ||||
|     void OpenAudioRendererForManualExecution(Kernel::HLERequestContext& ctx); | ||||
|     void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx); | ||||
|     void OpenAudioRenderer(HLERequestContext& ctx); | ||||
|     void GetWorkBufferSize(HLERequestContext& ctx); | ||||
|     void GetAudioDeviceService(HLERequestContext& ctx); | ||||
|     void OpenAudioRendererForManualExecution(HLERequestContext& ctx); | ||||
|     void GetAudioDeviceServiceWithRevisionInfo(HLERequestContext& ctx); | ||||
|  | ||||
|     KernelHelpers::ServiceContext service_context; | ||||
|     std::unique_ptr<AudioCore::AudioRenderer::Manager> impl; | ||||
|   | ||||
| @@ -11,8 +11,8 @@ | ||||
|  | ||||
| #include "common/assert.h" | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/audio/hwopus.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Audio { | ||||
| namespace { | ||||
| @@ -53,7 +53,7 @@ public: | ||||
|  | ||||
|     // Decodes interleaved Opus packets. Optionally allows reporting time taken to | ||||
|     // perform the decoding, as well as any relevant extra behavior. | ||||
|     void DecodeInterleaved(Kernel::HLERequestContext& ctx, PerfTime perf_time, | ||||
|     void DecodeInterleaved(HLERequestContext& ctx, PerfTime perf_time, | ||||
|                            ExtraBehavior extra_behavior) { | ||||
|         if (perf_time == PerfTime::Disabled) { | ||||
|             DecodeInterleavedHelper(ctx, nullptr, extra_behavior); | ||||
| @@ -64,7 +64,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void DecodeInterleavedHelper(Kernel::HLERequestContext& ctx, u64* performance, | ||||
|     void DecodeInterleavedHelper(HLERequestContext& ctx, u64* performance, | ||||
|                                  ExtraBehavior extra_behavior) { | ||||
|         u32 consumed = 0; | ||||
|         u32 sample_count = 0; | ||||
| @@ -180,21 +180,21 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void DecodeInterleavedOld(Kernel::HLERequestContext& ctx) { | ||||
|     void DecodeInterleavedOld(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Audio, "called"); | ||||
|  | ||||
|         decoder_state.DecodeInterleaved(ctx, OpusDecoderState::PerfTime::Disabled, | ||||
|                                         OpusDecoderState::ExtraBehavior::None); | ||||
|     } | ||||
|  | ||||
|     void DecodeInterleavedWithPerfOld(Kernel::HLERequestContext& ctx) { | ||||
|     void DecodeInterleavedWithPerfOld(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Audio, "called"); | ||||
|  | ||||
|         decoder_state.DecodeInterleaved(ctx, OpusDecoderState::PerfTime::Enabled, | ||||
|                                         OpusDecoderState::ExtraBehavior::None); | ||||
|     } | ||||
|  | ||||
|     void DecodeInterleaved(Kernel::HLERequestContext& ctx) { | ||||
|     void DecodeInterleaved(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Audio, "called"); | ||||
|  | ||||
|         IPC::RequestParser rp{ctx}; | ||||
| @@ -231,7 +231,7 @@ std::array<u8, 2> CreateMappingTable(u32 channel_count) { | ||||
| } | ||||
| } // Anonymous namespace | ||||
|  | ||||
| void HwOpus::GetWorkBufferSize(Kernel::HLERequestContext& ctx) { | ||||
| void HwOpus::GetWorkBufferSize(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto sample_rate = rp.Pop<u32>(); | ||||
|     const auto channel_count = rp.Pop<u32>(); | ||||
| @@ -251,11 +251,11 @@ void HwOpus::GetWorkBufferSize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u32>(worker_buffer_sz); | ||||
| } | ||||
|  | ||||
| void HwOpus::GetWorkBufferSizeEx(Kernel::HLERequestContext& ctx) { | ||||
| void HwOpus::GetWorkBufferSizeEx(HLERequestContext& ctx) { | ||||
|     GetWorkBufferSize(ctx); | ||||
| } | ||||
|  | ||||
| void HwOpus::GetWorkBufferSizeForMultiStreamEx(Kernel::HLERequestContext& ctx) { | ||||
| void HwOpus::GetWorkBufferSizeForMultiStreamEx(HLERequestContext& ctx) { | ||||
|     OpusMultiStreamParametersEx param; | ||||
|     std::memcpy(¶m, ctx.ReadBuffer().data(), ctx.GetReadBufferSize()); | ||||
|  | ||||
| @@ -281,7 +281,7 @@ void HwOpus::GetWorkBufferSizeForMultiStreamEx(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u32>(worker_buffer_sz); | ||||
| } | ||||
|  | ||||
| void HwOpus::OpenHardwareOpusDecoder(Kernel::HLERequestContext& ctx) { | ||||
| void HwOpus::OpenHardwareOpusDecoder(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto sample_rate = rp.Pop<u32>(); | ||||
|     const auto channel_count = rp.Pop<u32>(); | ||||
| @@ -319,7 +319,7 @@ void HwOpus::OpenHardwareOpusDecoder(Kernel::HLERequestContext& ctx) { | ||||
|         system, OpusDecoderState{std::move(decoder), sample_rate, channel_count}); | ||||
| } | ||||
|  | ||||
| void HwOpus::OpenHardwareOpusDecoderEx(Kernel::HLERequestContext& ctx) { | ||||
| void HwOpus::OpenHardwareOpusDecoderEx(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto sample_rate = rp.Pop<u32>(); | ||||
|     const auto channel_count = rp.Pop<u32>(); | ||||
|   | ||||
| @@ -27,11 +27,11 @@ public: | ||||
|     ~HwOpus() override; | ||||
|  | ||||
| private: | ||||
|     void OpenHardwareOpusDecoder(Kernel::HLERequestContext& ctx); | ||||
|     void OpenHardwareOpusDecoderEx(Kernel::HLERequestContext& ctx); | ||||
|     void GetWorkBufferSize(Kernel::HLERequestContext& ctx); | ||||
|     void GetWorkBufferSizeEx(Kernel::HLERequestContext& ctx); | ||||
|     void GetWorkBufferSizeForMultiStreamEx(Kernel::HLERequestContext& ctx); | ||||
|     void OpenHardwareOpusDecoder(HLERequestContext& ctx); | ||||
|     void OpenHardwareOpusDecoderEx(HLERequestContext& ctx); | ||||
|     void GetWorkBufferSize(HLERequestContext& ctx); | ||||
|     void GetWorkBufferSizeEx(HLERequestContext& ctx); | ||||
|     void GetWorkBufferSizeForMultiStreamEx(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::Audio | ||||
|   | ||||
| @@ -9,12 +9,12 @@ | ||||
| #include "common/string_util.h" | ||||
| #include "core/core.h" | ||||
| #include "core/file_sys/vfs.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_readable_event.h" | ||||
| #include "core/hle/service/bcat/backend/backend.h" | ||||
| #include "core/hle/service/bcat/bcat.h" | ||||
| #include "core/hle/service/bcat/bcat_module.h" | ||||
| #include "core/hle/service/filesystem/filesystem.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
|  | ||||
| namespace Service::BCAT { | ||||
| @@ -51,8 +51,7 @@ BCATDigest DigestFile(const FileSys::VirtualFile& file) { | ||||
| // For a name to be valid it must be non-empty, must have a null terminating character as the final | ||||
| // char, can only contain numbers, letters, underscores and a hyphen if directory and a period if | ||||
| // file. | ||||
| bool VerifyNameValidInternal(Kernel::HLERequestContext& ctx, std::array<char, 0x20> name, | ||||
|                              char match_char) { | ||||
| bool VerifyNameValidInternal(HLERequestContext& ctx, std::array<char, 0x20> name, char match_char) { | ||||
|     const auto null_chars = std::count(name.begin(), name.end(), 0); | ||||
|     const auto bad_chars = std::count_if(name.begin(), name.end(), [match_char](char c) { | ||||
|         return !std::isalnum(static_cast<u8>(c)) && c != '_' && c != match_char && c != '\0'; | ||||
| @@ -67,11 +66,11 @@ bool VerifyNameValidInternal(Kernel::HLERequestContext& ctx, std::array<char, 0x | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| bool VerifyNameValidDir(Kernel::HLERequestContext& ctx, DirectoryName name) { | ||||
| bool VerifyNameValidDir(HLERequestContext& ctx, DirectoryName name) { | ||||
|     return VerifyNameValidInternal(ctx, name, '-'); | ||||
| } | ||||
|  | ||||
| bool VerifyNameValidFile(Kernel::HLERequestContext& ctx, FileName name) { | ||||
| bool VerifyNameValidFile(HLERequestContext& ctx, FileName name) { | ||||
|     return VerifyNameValidInternal(ctx, name, '.'); | ||||
| } | ||||
|  | ||||
| @@ -99,7 +98,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void GetEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -107,7 +106,7 @@ private: | ||||
|         rb.PushCopyObjects(event); | ||||
|     } | ||||
|  | ||||
|     void GetImpl(Kernel::HLERequestContext& ctx) { | ||||
|     void GetImpl(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         ctx.WriteBuffer(impl); | ||||
| @@ -174,7 +173,7 @@ private: | ||||
|                                                                progress_backend.GetImpl()); | ||||
|     } | ||||
|  | ||||
|     void RequestSyncDeliveryCache(Kernel::HLERequestContext& ctx) { | ||||
|     void RequestSyncDeliveryCache(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         backend.Synchronize({system.GetApplicationProcessProgramID(), | ||||
| @@ -186,7 +185,7 @@ private: | ||||
|         rb.PushIpcInterface(CreateProgressService(SyncType::Normal)); | ||||
|     } | ||||
|  | ||||
|     void RequestSyncDeliveryCacheWithDirectoryName(Kernel::HLERequestContext& ctx) { | ||||
|     void RequestSyncDeliveryCacheWithDirectoryName(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto name_raw = rp.PopRaw<DirectoryName>(); | ||||
|         const auto name = | ||||
| @@ -203,7 +202,7 @@ private: | ||||
|         rb.PushIpcInterface(CreateProgressService(SyncType::Directory)); | ||||
|     } | ||||
|  | ||||
|     void SetPassphrase(Kernel::HLERequestContext& ctx) { | ||||
|     void SetPassphrase(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto title_id = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -235,7 +234,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void ClearDeliveryCacheStorage(Kernel::HLERequestContext& ctx) { | ||||
|     void ClearDeliveryCacheStorage(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto title_id = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -271,7 +270,7 @@ private: | ||||
|     std::array<ProgressServiceBackend, static_cast<size_t>(SyncType::Count)> progress; | ||||
| }; | ||||
|  | ||||
| void Module::Interface::CreateBcatService(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::CreateBcatService(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -296,7 +295,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Open(Kernel::HLERequestContext& ctx) { | ||||
|     void Open(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto dir_name_raw = rp.PopRaw<DirectoryName>(); | ||||
|         const auto file_name_raw = rp.PopRaw<FileName>(); | ||||
| @@ -340,7 +339,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Read(Kernel::HLERequestContext& ctx) { | ||||
|     void Read(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto offset{rp.PopRaw<u64>()}; | ||||
|  | ||||
| @@ -363,7 +362,7 @@ private: | ||||
|         rb.Push<u64>(buffer.size()); | ||||
|     } | ||||
|  | ||||
|     void GetSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSize(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         if (current_file == nullptr) { | ||||
| @@ -377,7 +376,7 @@ private: | ||||
|         rb.Push<u64>(current_file->GetSize()); | ||||
|     } | ||||
|  | ||||
|     void GetDigest(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDigest(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         if (current_file == nullptr) { | ||||
| @@ -412,7 +411,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Open(Kernel::HLERequestContext& ctx) { | ||||
|     void Open(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto name_raw = rp.PopRaw<DirectoryName>(); | ||||
|         const auto name = | ||||
| @@ -443,7 +442,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Read(Kernel::HLERequestContext& ctx) { | ||||
|     void Read(HLERequestContext& ctx) { | ||||
|         auto write_size = ctx.GetWriteBufferNumElements<DeliveryCacheDirectoryEntry>(); | ||||
|  | ||||
|         LOG_DEBUG(Service_BCAT, "called, write_size={:016X}", write_size); | ||||
| @@ -473,7 +472,7 @@ private: | ||||
|         rb.Push(static_cast<u32>(write_size * sizeof(DeliveryCacheDirectoryEntry))); | ||||
|     } | ||||
|  | ||||
|     void GetCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCount(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         if (current_dir == nullptr) { | ||||
| @@ -517,7 +516,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateFileService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateFileService(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -525,7 +524,7 @@ private: | ||||
|         rb.PushIpcInterface<IDeliveryCacheFileService>(system, root); | ||||
|     } | ||||
|  | ||||
|     void CreateDirectoryService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateDirectoryService(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -533,7 +532,7 @@ private: | ||||
|         rb.PushIpcInterface<IDeliveryCacheDirectoryService>(system, root); | ||||
|     } | ||||
|  | ||||
|     void EnumerateDeliveryCacheDirectory(Kernel::HLERequestContext& ctx) { | ||||
|     void EnumerateDeliveryCacheDirectory(HLERequestContext& ctx) { | ||||
|         auto size = ctx.GetWriteBufferNumElements<DirectoryName>(); | ||||
|  | ||||
|         LOG_DEBUG(Service_BCAT, "called, size={:016X}", size); | ||||
| @@ -552,7 +551,7 @@ private: | ||||
|     u64 next_read_index = 0; | ||||
| }; | ||||
|  | ||||
| void Module::Interface::CreateDeliveryCacheStorageService(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::CreateDeliveryCacheStorageService(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_BCAT, "called"); | ||||
|  | ||||
|     const auto title_id = system.GetApplicationProcessProgramID(); | ||||
| @@ -561,8 +560,7 @@ void Module::Interface::CreateDeliveryCacheStorageService(Kernel::HLERequestCont | ||||
|     rb.PushIpcInterface<IDeliveryCacheStorageService>(system, fsc.GetBCATDirectory(title_id)); | ||||
| } | ||||
|  | ||||
| void Module::Interface::CreateDeliveryCacheStorageServiceWithApplicationId( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::CreateDeliveryCacheStorageServiceWithApplicationId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto title_id = rp.PopRaw<u64>(); | ||||
|  | ||||
|   | ||||
| @@ -27,9 +27,9 @@ public: | ||||
|                            FileSystem::FileSystemController& fsc_, const char* name); | ||||
|         ~Interface() override; | ||||
|  | ||||
|         void CreateBcatService(Kernel::HLERequestContext& ctx); | ||||
|         void CreateDeliveryCacheStorageService(Kernel::HLERequestContext& ctx); | ||||
|         void CreateDeliveryCacheStorageServiceWithApplicationId(Kernel::HLERequestContext& ctx); | ||||
|         void CreateBcatService(HLERequestContext& ctx); | ||||
|         void CreateDeliveryCacheStorageService(HLERequestContext& ctx); | ||||
|         void CreateDeliveryCacheStorageServiceWithApplicationId(HLERequestContext& ctx); | ||||
|  | ||||
|     protected: | ||||
|         FileSystem::FileSystemController& fsc; | ||||
|   | ||||
| @@ -3,9 +3,9 @@ | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/btdrv/btdrv.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/kernel_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| @@ -41,7 +41,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void RegisterBleEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void RegisterBleEvent(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
|   | ||||
| @@ -5,9 +5,9 @@ | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/btm/btm.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/kernel_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| @@ -70,7 +70,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void AcquireBleScanEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void AcquireBleScanEvent(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3, 1}; | ||||
| @@ -79,7 +79,7 @@ private: | ||||
|         rb.PushCopyObjects(scan_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void AcquireBleConnectionEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void AcquireBleConnectionEvent(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3, 1}; | ||||
| @@ -88,7 +88,7 @@ private: | ||||
|         rb.PushCopyObjects(connection_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void AcquireBleServiceDiscoveryEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void AcquireBleServiceDiscoveryEvent(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3, 1}; | ||||
| @@ -97,7 +97,7 @@ private: | ||||
|         rb.PushCopyObjects(service_discovery_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void AcquireBleMtuConfigEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void AcquireBleMtuConfigEvent(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_BTM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3, 1}; | ||||
| @@ -126,7 +126,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetCore(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCore(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BTM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -307,7 +307,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetCore(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCore(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_BTM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -9,10 +9,6 @@ namespace Core { | ||||
| class System; | ||||
| } | ||||
|  | ||||
| namespace Kernel { | ||||
| class HLERequestContext; | ||||
| } | ||||
|  | ||||
| namespace Service::Capture { | ||||
|  | ||||
| class CAPS_A final : public ServiceFramework<CAPS_A> { | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/caps/caps_c.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Capture { | ||||
|  | ||||
| @@ -74,7 +74,7 @@ CAPS_C::CAPS_C(Core::System& system_) : ServiceFramework{system_, "caps:c"} { | ||||
|  | ||||
| CAPS_C::~CAPS_C() = default; | ||||
|  | ||||
| void CAPS_C::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) { | ||||
| void CAPS_C::SetShimLibraryVersion(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto library_version{rp.Pop<u64>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|   | ||||
| @@ -9,10 +9,6 @@ namespace Core { | ||||
| class System; | ||||
| } | ||||
|  | ||||
| namespace Kernel { | ||||
| class HLERequestContext; | ||||
| } | ||||
|  | ||||
| namespace Service::Capture { | ||||
|  | ||||
| class CAPS_C final : public ServiceFramework<CAPS_C> { | ||||
| @@ -21,7 +17,7 @@ public: | ||||
|     ~CAPS_C() override; | ||||
|  | ||||
| private: | ||||
|     void SetShimLibraryVersion(Kernel::HLERequestContext& ctx); | ||||
|     void SetShimLibraryVersion(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::Capture | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/caps/caps_su.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Capture { | ||||
|  | ||||
| @@ -23,7 +23,7 @@ CAPS_SU::CAPS_SU(Core::System& system_) : ServiceFramework{system_, "caps:su"} { | ||||
|  | ||||
| CAPS_SU::~CAPS_SU() = default; | ||||
|  | ||||
| void CAPS_SU::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) { | ||||
| void CAPS_SU::SetShimLibraryVersion(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto library_version{rp.Pop<u64>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|   | ||||
| @@ -9,10 +9,6 @@ namespace Core { | ||||
| class System; | ||||
| } | ||||
|  | ||||
| namespace Kernel { | ||||
| class HLERequestContext; | ||||
| } | ||||
|  | ||||
| namespace Service::Capture { | ||||
|  | ||||
| class CAPS_SU final : public ServiceFramework<CAPS_SU> { | ||||
| @@ -21,7 +17,7 @@ public: | ||||
|     ~CAPS_SU() override; | ||||
|  | ||||
| private: | ||||
|     void SetShimLibraryVersion(Kernel::HLERequestContext& ctx); | ||||
|     void SetShimLibraryVersion(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::Capture | ||||
|   | ||||
| @@ -2,9 +2,9 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/caps/caps.h" | ||||
| #include "core/hle/service/caps/caps_u.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Capture { | ||||
|  | ||||
| @@ -52,7 +52,7 @@ CAPS_U::CAPS_U(Core::System& system_) : ServiceFramework{system_, "caps:u"} { | ||||
|  | ||||
| CAPS_U::~CAPS_U() = default; | ||||
|  | ||||
| void CAPS_U::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) { | ||||
| void CAPS_U::SetShimLibraryVersion(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto library_version{rp.Pop<u64>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
| @@ -64,7 +64,7 @@ void CAPS_U::SetShimLibraryVersion(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void CAPS_U::GetAlbumContentsFileListForApplication(Kernel::HLERequestContext& ctx) { | ||||
| void CAPS_U::GetAlbumContentsFileListForApplication(HLERequestContext& ctx) { | ||||
|     // Takes a type-0x6 output buffer containing an array of ApplicationAlbumFileEntry, a PID, an | ||||
|     // u8 ContentType, two s64s, and an u64 AppletResourceUserId. Returns an output u64 for total | ||||
|     // output entries (which is copied to a s32 by official SW). | ||||
| @@ -93,7 +93,7 @@ void CAPS_U::GetAlbumContentsFileListForApplication(Kernel::HLERequestContext& c | ||||
|     rb.Push(total_entries_2); | ||||
| } | ||||
|  | ||||
| void CAPS_U::GetAlbumFileList3AaeAruid(Kernel::HLERequestContext& ctx) { | ||||
| void CAPS_U::GetAlbumFileList3AaeAruid(HLERequestContext& ctx) { | ||||
|     GetAlbumContentsFileListForApplication(ctx); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -9,10 +9,6 @@ namespace Core { | ||||
| class System; | ||||
| } | ||||
|  | ||||
| namespace Kernel { | ||||
| class HLERequestContext; | ||||
| } | ||||
|  | ||||
| namespace Service::Capture { | ||||
|  | ||||
| class CAPS_U final : public ServiceFramework<CAPS_U> { | ||||
| @@ -21,9 +17,9 @@ public: | ||||
|     ~CAPS_U() override; | ||||
|  | ||||
| private: | ||||
|     void SetShimLibraryVersion(Kernel::HLERequestContext& ctx); | ||||
|     void GetAlbumContentsFileListForApplication(Kernel::HLERequestContext& ctx); | ||||
|     void GetAlbumFileList3AaeAruid(Kernel::HLERequestContext& ctx); | ||||
|     void SetShimLibraryVersion(HLERequestContext& ctx); | ||||
|     void GetAlbumContentsFileListForApplication(HLERequestContext& ctx); | ||||
|     void GetAlbumFileList3AaeAruid(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::Capture | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "core/crypto/key_manager.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/es/es.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
|  | ||||
| @@ -110,7 +110,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     bool CheckRightsId(Kernel::HLERequestContext& ctx, const u128& rights_id) { | ||||
|     bool CheckRightsId(HLERequestContext& ctx, const u128& rights_id) { | ||||
|         if (rights_id == u128{}) { | ||||
|             LOG_ERROR(Service_ETicket, "The rights ID was invalid!"); | ||||
|             IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -121,7 +121,7 @@ private: | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     void ImportTicket(Kernel::HLERequestContext& ctx) { | ||||
|     void ImportTicket(HLERequestContext& ctx) { | ||||
|         const auto ticket = ctx.ReadBuffer(); | ||||
|         [[maybe_unused]] const auto cert = ctx.ReadBuffer(1); | ||||
|  | ||||
| @@ -146,7 +146,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetTitleKey(Kernel::HLERequestContext& ctx) { | ||||
|     void GetTitleKey(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto rights_id = rp.PopRaw<u128>(); | ||||
|  | ||||
| @@ -172,7 +172,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void CountCommonTicket(Kernel::HLERequestContext& ctx) { | ||||
|     void CountCommonTicket(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ETicket, "called"); | ||||
|  | ||||
|         const u32 count = static_cast<u32>(keys.GetCommonTickets().size()); | ||||
| @@ -182,7 +182,7 @@ private: | ||||
|         rb.Push<u32>(count); | ||||
|     } | ||||
|  | ||||
|     void CountPersonalizedTicket(Kernel::HLERequestContext& ctx) { | ||||
|     void CountPersonalizedTicket(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ETicket, "called"); | ||||
|  | ||||
|         const u32 count = static_cast<u32>(keys.GetPersonalizedTickets().size()); | ||||
| @@ -192,7 +192,7 @@ private: | ||||
|         rb.Push<u32>(count); | ||||
|     } | ||||
|  | ||||
|     void ListCommonTicketRightsIds(Kernel::HLERequestContext& ctx) { | ||||
|     void ListCommonTicketRightsIds(HLERequestContext& ctx) { | ||||
|         size_t out_entries = 0; | ||||
|         if (!keys.GetCommonTickets().empty()) { | ||||
|             out_entries = ctx.GetWriteBufferNumElements<u128>(); | ||||
| @@ -213,7 +213,7 @@ private: | ||||
|         rb.Push<u32>(static_cast<u32>(out_entries)); | ||||
|     } | ||||
|  | ||||
|     void ListPersonalizedTicketRightsIds(Kernel::HLERequestContext& ctx) { | ||||
|     void ListPersonalizedTicketRightsIds(HLERequestContext& ctx) { | ||||
|         size_t out_entries = 0; | ||||
|         if (!keys.GetPersonalizedTickets().empty()) { | ||||
|             out_entries = ctx.GetWriteBufferNumElements<u128>(); | ||||
| @@ -235,7 +235,7 @@ private: | ||||
|         rb.Push<u32>(static_cast<u32>(out_entries)); | ||||
|     } | ||||
|  | ||||
|     void GetCommonTicketSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCommonTicketSize(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto rights_id = rp.PopRaw<u128>(); | ||||
|  | ||||
| @@ -251,7 +251,7 @@ private: | ||||
|         rb.Push<u64>(ticket.GetSize()); | ||||
|     } | ||||
|  | ||||
|     void GetPersonalizedTicketSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetPersonalizedTicketSize(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto rights_id = rp.PopRaw<u128>(); | ||||
|  | ||||
| @@ -267,7 +267,7 @@ private: | ||||
|         rb.Push<u64>(ticket.GetSize()); | ||||
|     } | ||||
|  | ||||
|     void GetCommonTicketData(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCommonTicketData(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto rights_id = rp.PopRaw<u128>(); | ||||
|  | ||||
| @@ -286,7 +286,7 @@ private: | ||||
|         rb.Push<u64>(write_size); | ||||
|     } | ||||
|  | ||||
|     void GetPersonalizedTicketData(Kernel::HLERequestContext& ctx) { | ||||
|     void GetPersonalizedTicketData(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto rights_id = rp.PopRaw<u128>(); | ||||
|  | ||||
|   | ||||
| @@ -9,10 +9,10 @@ | ||||
| #include "common/scm_rev.h" | ||||
| #include "common/swap.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/fatal/fatal.h" | ||||
| #include "core/hle/service/fatal/fatal_p.h" | ||||
| #include "core/hle/service/fatal/fatal_u.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/reporter.h" | ||||
|  | ||||
| @@ -126,7 +126,7 @@ static void ThrowFatalError(Core::System& system, Result error_code, FatalType f | ||||
|     } | ||||
| } | ||||
|  | ||||
| void Module::Interface::ThrowFatal(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::ThrowFatal(HLERequestContext& ctx) { | ||||
|     LOG_ERROR(Service_Fatal, "called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto error_code = rp.Pop<Result>(); | ||||
| @@ -136,7 +136,7 @@ void Module::Interface::ThrowFatal(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::ThrowFatalWithPolicy(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::ThrowFatalWithPolicy(HLERequestContext& ctx) { | ||||
|     LOG_ERROR(Service_Fatal, "called"); | ||||
|     IPC::RequestParser rp(ctx); | ||||
|     const auto error_code = rp.Pop<Result>(); | ||||
| @@ -148,7 +148,7 @@ void Module::Interface::ThrowFatalWithPolicy(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Module::Interface::ThrowFatalWithCpuContext(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::ThrowFatalWithCpuContext(HLERequestContext& ctx) { | ||||
|     LOG_ERROR(Service_Fatal, "called"); | ||||
|     IPC::RequestParser rp(ctx); | ||||
|     const auto error_code = rp.Pop<Result>(); | ||||
|   | ||||
| @@ -19,9 +19,9 @@ public: | ||||
|                            const char* name); | ||||
|         ~Interface() override; | ||||
|  | ||||
|         void ThrowFatal(Kernel::HLERequestContext& ctx); | ||||
|         void ThrowFatalWithPolicy(Kernel::HLERequestContext& ctx); | ||||
|         void ThrowFatalWithCpuContext(Kernel::HLERequestContext& ctx); | ||||
|         void ThrowFatal(HLERequestContext& ctx); | ||||
|         void ThrowFatalWithPolicy(HLERequestContext& ctx); | ||||
|         void ThrowFatalWithCpuContext(HLERequestContext& ctx); | ||||
|  | ||||
|     protected: | ||||
|         std::shared_ptr<Module> module; | ||||
|   | ||||
| @@ -3,8 +3,8 @@ | ||||
|  | ||||
| #include <memory> | ||||
|  | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/fgm/fgm.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| #include "core/hle/service/sm/sm.h" | ||||
| @@ -40,7 +40,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     void Initialize(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_FGM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -24,9 +24,9 @@ | ||||
| #include "core/file_sys/savedata_factory.h" | ||||
| #include "core/file_sys/system_archive/system_archive.h" | ||||
| #include "core/file_sys/vfs.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/filesystem/filesystem.h" | ||||
| #include "core/hle/service/filesystem/fsp_srv.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/reporter.h" | ||||
|  | ||||
| namespace Service::FileSystem { | ||||
| @@ -72,7 +72,7 @@ public: | ||||
| private: | ||||
|     FileSys::VirtualFile backend; | ||||
|  | ||||
|     void Read(Kernel::HLERequestContext& ctx) { | ||||
|     void Read(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const s64 offset = rp.Pop<s64>(); | ||||
|         const s64 length = rp.Pop<s64>(); | ||||
| @@ -102,7 +102,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSize(HLERequestContext& ctx) { | ||||
|         const u64 size = backend->GetSize(); | ||||
|         LOG_DEBUG(Service_FS, "called, size={}", size); | ||||
|  | ||||
| @@ -131,7 +131,7 @@ public: | ||||
| private: | ||||
|     FileSys::VirtualFile backend; | ||||
|  | ||||
|     void Read(Kernel::HLERequestContext& ctx) { | ||||
|     void Read(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const u64 option = rp.Pop<u64>(); | ||||
|         const s64 offset = rp.Pop<s64>(); | ||||
| @@ -165,7 +165,7 @@ private: | ||||
|         rb.Push(static_cast<u64>(output.size())); | ||||
|     } | ||||
|  | ||||
|     void Write(Kernel::HLERequestContext& ctx) { | ||||
|     void Write(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const u64 option = rp.Pop<u64>(); | ||||
|         const s64 offset = rp.Pop<s64>(); | ||||
| @@ -208,7 +208,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Flush(Kernel::HLERequestContext& ctx) { | ||||
|     void Flush(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|         // Exists for SDK compatibiltity -- No need to flush file. | ||||
| @@ -217,7 +217,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SetSize(Kernel::HLERequestContext& ctx) { | ||||
|     void SetSize(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const u64 size = rp.Pop<u64>(); | ||||
|         LOG_DEBUG(Service_FS, "called, size={}", size); | ||||
| @@ -228,7 +228,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSize(HLERequestContext& ctx) { | ||||
|         const u64 size = backend->GetSize(); | ||||
|         LOG_DEBUG(Service_FS, "called, size={}", size); | ||||
|  | ||||
| @@ -270,7 +270,7 @@ private: | ||||
|     std::vector<FileSys::Entry> entries; | ||||
|     u64 next_entry_index = 0; | ||||
|  | ||||
|     void Read(Kernel::HLERequestContext& ctx) { | ||||
|     void Read(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_FS, "called."); | ||||
|  | ||||
|         // Calculate how many entries we can fit in the output buffer | ||||
| @@ -294,7 +294,7 @@ private: | ||||
|         rb.Push(actual_entries); | ||||
|     } | ||||
|  | ||||
|     void GetEntryCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetEntryCount(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|         u64 count = entries.size() - next_entry_index; | ||||
| @@ -331,7 +331,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void CreateFile(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateFile(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
| @@ -347,7 +347,7 @@ public: | ||||
|         rb.Push(backend.CreateFile(name, file_size)); | ||||
|     } | ||||
|  | ||||
|     void DeleteFile(Kernel::HLERequestContext& ctx) { | ||||
|     void DeleteFile(HLERequestContext& ctx) { | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(file_buffer); | ||||
|  | ||||
| @@ -357,7 +357,7 @@ public: | ||||
|         rb.Push(backend.DeleteFile(name)); | ||||
|     } | ||||
|  | ||||
|     void CreateDirectory(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateDirectory(HLERequestContext& ctx) { | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(file_buffer); | ||||
|  | ||||
| @@ -367,7 +367,7 @@ public: | ||||
|         rb.Push(backend.CreateDirectory(name)); | ||||
|     } | ||||
|  | ||||
|     void DeleteDirectory(Kernel::HLERequestContext& ctx) { | ||||
|     void DeleteDirectory(HLERequestContext& ctx) { | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(file_buffer); | ||||
|  | ||||
| @@ -377,7 +377,7 @@ public: | ||||
|         rb.Push(backend.DeleteDirectory(name)); | ||||
|     } | ||||
|  | ||||
|     void DeleteDirectoryRecursively(Kernel::HLERequestContext& ctx) { | ||||
|     void DeleteDirectoryRecursively(HLERequestContext& ctx) { | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(file_buffer); | ||||
|  | ||||
| @@ -387,7 +387,7 @@ public: | ||||
|         rb.Push(backend.DeleteDirectoryRecursively(name)); | ||||
|     } | ||||
|  | ||||
|     void CleanDirectoryRecursively(Kernel::HLERequestContext& ctx) { | ||||
|     void CleanDirectoryRecursively(HLERequestContext& ctx) { | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(file_buffer); | ||||
|  | ||||
| @@ -397,7 +397,7 @@ public: | ||||
|         rb.Push(backend.CleanDirectoryRecursively(name)); | ||||
|     } | ||||
|  | ||||
|     void RenameFile(Kernel::HLERequestContext& ctx) { | ||||
|     void RenameFile(HLERequestContext& ctx) { | ||||
|         const std::string src_name = Common::StringFromBuffer(ctx.ReadBuffer(0)); | ||||
|         const std::string dst_name = Common::StringFromBuffer(ctx.ReadBuffer(1)); | ||||
|  | ||||
| @@ -407,7 +407,7 @@ public: | ||||
|         rb.Push(backend.RenameFile(src_name, dst_name)); | ||||
|     } | ||||
|  | ||||
|     void OpenFile(Kernel::HLERequestContext& ctx) { | ||||
|     void OpenFile(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
| @@ -431,7 +431,7 @@ public: | ||||
|         rb.PushIpcInterface<IFile>(std::move(file)); | ||||
|     } | ||||
|  | ||||
|     void OpenDirectory(Kernel::HLERequestContext& ctx) { | ||||
|     void OpenDirectory(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
| @@ -456,7 +456,7 @@ public: | ||||
|         rb.PushIpcInterface<IDirectory>(std::move(directory)); | ||||
|     } | ||||
|  | ||||
|     void GetEntryType(Kernel::HLERequestContext& ctx) { | ||||
|     void GetEntryType(HLERequestContext& ctx) { | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(file_buffer); | ||||
|  | ||||
| @@ -474,14 +474,14 @@ public: | ||||
|         rb.Push<u32>(static_cast<u32>(*result)); | ||||
|     } | ||||
|  | ||||
|     void Commit(Kernel::HLERequestContext& ctx) { | ||||
|     void Commit(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_FS, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetFreeSpaceSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetFreeSpaceSize(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 4}; | ||||
| @@ -489,7 +489,7 @@ public: | ||||
|         rb.Push(size.get_free_size()); | ||||
|     } | ||||
|  | ||||
|     void GetTotalSpaceSize(Kernel::HLERequestContext& ctx) { | ||||
|     void GetTotalSpaceSize(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 4}; | ||||
| @@ -497,7 +497,7 @@ public: | ||||
|         rb.Push(size.get_total_size()); | ||||
|     } | ||||
|  | ||||
|     void GetFileTimeStampRaw(Kernel::HLERequestContext& ctx) { | ||||
|     void GetFileTimeStampRaw(HLERequestContext& ctx) { | ||||
|         const auto file_buffer = ctx.ReadBuffer(); | ||||
|         const std::string name = Common::StringFromBuffer(file_buffer); | ||||
|  | ||||
| @@ -533,7 +533,7 @@ public: | ||||
|         FindAllSaves(space); | ||||
|     } | ||||
|  | ||||
|     void ReadSaveDataInfo(Kernel::HLERequestContext& ctx) { | ||||
|     void ReadSaveDataInfo(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|         // Calculate how many entries we can fit in the output buffer | ||||
| @@ -811,7 +811,7 @@ FSP_SRV::FSP_SRV(Core::System& system_) | ||||
|  | ||||
| FSP_SRV::~FSP_SRV() = default; | ||||
|  | ||||
| void FSP_SRV::SetCurrentProcess(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::SetCurrentProcess(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     current_process_id = rp.Pop<u64>(); | ||||
|  | ||||
| @@ -821,7 +821,7 @@ void FSP_SRV::SetCurrentProcess(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenFileSystemWithPatch(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const auto type = rp.PopRaw<FileSystemType>(); | ||||
| @@ -832,7 +832,7 @@ void FSP_SRV::OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultUnknown); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenSdCardFileSystem(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenSdCardFileSystem(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|     auto filesystem = | ||||
| @@ -844,7 +844,7 @@ void FSP_SRV::OpenSdCardFileSystem(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IFileSystem>(std::move(filesystem)); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::CreateSaveDataFileSystem(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::CreateSaveDataFileSystem(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     auto save_struct = rp.PopRaw<FileSys::SaveDataAttribute>(); | ||||
| @@ -860,7 +860,7 @@ void FSP_SRV::CreateSaveDataFileSystem(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenSaveDataFileSystem(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     struct Parameters { | ||||
| @@ -905,12 +905,12 @@ void FSP_SRV::OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IFileSystem>(std::move(filesystem)); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenReadOnlySaveDataFileSystem(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_FS, "(STUBBED) called, delegating to 51 OpenSaveDataFilesystem"); | ||||
|     OpenSaveDataFileSystem(ctx); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto space = rp.PopRaw<FileSys::SaveDataSpaceId>(); | ||||
|     LOG_INFO(Service_FS, "called, space={}", space); | ||||
| @@ -921,15 +921,14 @@ void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& | ||||
|         std::make_shared<ISaveDataInfoReader>(system, space, fsc)); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::WriteSaveDataFileSystemExtraDataBySaveDataAttribute(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::WriteSaveDataFileSystemExtraDataBySaveDataAttribute(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_FS, "(STUBBED) called."); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     struct Parameters { | ||||
| @@ -955,7 +954,7 @@ void FSP_SRV::ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute( | ||||
|     rb.Push(flags); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenDataStorageByCurrentProcess(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|     auto current_romfs = fsc.OpenRomFSCurrentProcess(); | ||||
| @@ -974,7 +973,7 @@ void FSP_SRV::OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IStorage>(std::move(storage)); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenDataStorageByDataId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto storage_id = rp.PopRaw<FileSys::StorageId>(); | ||||
|     const auto unknown = rp.PopRaw<u32>(); | ||||
| @@ -1014,7 +1013,7 @@ void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IStorage>(std::move(storage)); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenPatchDataStorageByCurrentProcess(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const auto storage_id = rp.PopRaw<FileSys::StorageId>(); | ||||
| @@ -1026,7 +1025,7 @@ void FSP_SRV::OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ct | ||||
|     rb.Push(FileSys::ERROR_ENTITY_NOT_FOUND); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OpenDataStorageWithProgramIndex(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenDataStorageWithProgramIndex(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     const auto program_index = rp.PopRaw<u8>(); | ||||
| @@ -1053,7 +1052,7 @@ void FSP_SRV::OpenDataStorageWithProgramIndex(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IStorage>(std::move(storage)); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::DisableAutoSaveDataCreation(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::DisableAutoSaveDataCreation(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|     fsc.SetAutoSaveDataCreation(false); | ||||
| @@ -1062,7 +1061,7 @@ void FSP_SRV::DisableAutoSaveDataCreation(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::SetGlobalAccessLogMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     access_log_mode = rp.PopEnum<AccessLogMode>(); | ||||
|  | ||||
| @@ -1072,7 +1071,7 @@ void FSP_SRV::SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::GetGlobalAccessLogMode(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -1080,7 +1079,7 @@ void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(access_log_mode); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OutputAccessLogToSdCard(HLERequestContext& ctx) { | ||||
|     const auto raw = ctx.ReadBufferCopy(); | ||||
|     auto log = Common::StringFromFixedZeroTerminatedBuffer( | ||||
|         reinterpret_cast<const char*>(raw.data()), raw.size()); | ||||
| @@ -1093,7 +1092,7 @@ void FSP_SRV::OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::GetProgramIndexForAccessLog(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::GetProgramIndexForAccessLog(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
| @@ -1102,7 +1101,7 @@ void FSP_SRV::GetProgramIndexForAccessLog(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(access_log_program_index); | ||||
| } | ||||
|  | ||||
| void FSP_SRV::GetCacheStorageSize(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::GetCacheStorageSize(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto index{rp.Pop<s32>()}; | ||||
|  | ||||
| @@ -1128,14 +1127,14 @@ public: | ||||
| private: | ||||
|     FileSys::VirtualFile backend; | ||||
|  | ||||
|     void Add(Kernel::HLERequestContext& ctx) { | ||||
|     void Add(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_FS, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Commit(Kernel::HLERequestContext& ctx) { | ||||
|     void Commit(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_FS, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -1143,7 +1142,7 @@ private: | ||||
|     } | ||||
| }; | ||||
|  | ||||
| void FSP_SRV::OpenMultiCommitManager(Kernel::HLERequestContext& ctx) { | ||||
| void FSP_SRV::OpenMultiCommitManager(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_FS, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -35,26 +35,26 @@ public: | ||||
|     ~FSP_SRV() override; | ||||
|  | ||||
| private: | ||||
|     void SetCurrentProcess(Kernel::HLERequestContext& ctx); | ||||
|     void OpenFileSystemWithPatch(Kernel::HLERequestContext& ctx); | ||||
|     void OpenSdCardFileSystem(Kernel::HLERequestContext& ctx); | ||||
|     void CreateSaveDataFileSystem(Kernel::HLERequestContext& ctx); | ||||
|     void OpenSaveDataFileSystem(Kernel::HLERequestContext& ctx); | ||||
|     void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx); | ||||
|     void OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx); | ||||
|     void WriteSaveDataFileSystemExtraDataBySaveDataAttribute(Kernel::HLERequestContext& ctx); | ||||
|     void ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute(Kernel::HLERequestContext& ctx); | ||||
|     void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx); | ||||
|     void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx); | ||||
|     void OpenPatchDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx); | ||||
|     void OpenDataStorageWithProgramIndex(Kernel::HLERequestContext& ctx); | ||||
|     void DisableAutoSaveDataCreation(Kernel::HLERequestContext& ctx); | ||||
|     void SetGlobalAccessLogMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx); | ||||
|     void OutputAccessLogToSdCard(Kernel::HLERequestContext& ctx); | ||||
|     void GetProgramIndexForAccessLog(Kernel::HLERequestContext& ctx); | ||||
|     void OpenMultiCommitManager(Kernel::HLERequestContext& ctx); | ||||
|     void GetCacheStorageSize(Kernel::HLERequestContext& ctx); | ||||
|     void SetCurrentProcess(HLERequestContext& ctx); | ||||
|     void OpenFileSystemWithPatch(HLERequestContext& ctx); | ||||
|     void OpenSdCardFileSystem(HLERequestContext& ctx); | ||||
|     void CreateSaveDataFileSystem(HLERequestContext& ctx); | ||||
|     void OpenSaveDataFileSystem(HLERequestContext& ctx); | ||||
|     void OpenReadOnlySaveDataFileSystem(HLERequestContext& ctx); | ||||
|     void OpenSaveDataInfoReaderBySaveDataSpaceId(HLERequestContext& ctx); | ||||
|     void WriteSaveDataFileSystemExtraDataBySaveDataAttribute(HLERequestContext& ctx); | ||||
|     void ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute(HLERequestContext& ctx); | ||||
|     void OpenDataStorageByCurrentProcess(HLERequestContext& ctx); | ||||
|     void OpenDataStorageByDataId(HLERequestContext& ctx); | ||||
|     void OpenPatchDataStorageByCurrentProcess(HLERequestContext& ctx); | ||||
|     void OpenDataStorageWithProgramIndex(HLERequestContext& ctx); | ||||
|     void DisableAutoSaveDataCreation(HLERequestContext& ctx); | ||||
|     void SetGlobalAccessLogMode(HLERequestContext& ctx); | ||||
|     void GetGlobalAccessLogMode(HLERequestContext& ctx); | ||||
|     void OutputAccessLogToSdCard(HLERequestContext& ctx); | ||||
|     void GetProgramIndexForAccessLog(HLERequestContext& ctx); | ||||
|     void OpenMultiCommitManager(HLERequestContext& ctx); | ||||
|     void GetCacheStorageSize(HLERequestContext& ctx); | ||||
|  | ||||
|     FileSystemController& fsc; | ||||
|     const FileSys::ContentProvider& content_provider; | ||||
|   | ||||
| @@ -5,11 +5,11 @@ | ||||
| #include "common/logging/log.h" | ||||
| #include "common/uuid.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/friend/errors.h" | ||||
| #include "core/hle/service/friend/friend.h" | ||||
| #include "core/hle/service/friend/friend_interface.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/kernel_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
|  | ||||
| @@ -136,7 +136,7 @@ private: | ||||
|     }; | ||||
|     static_assert(sizeof(SizedFriendFilter) == 0x10, "SizedFriendFilter is an invalid size"); | ||||
|  | ||||
|     void GetCompletionEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCompletionEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Friend, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -144,7 +144,7 @@ private: | ||||
|         rb.PushCopyObjects(completion_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void GetBlockedUserListIds(Kernel::HLERequestContext& ctx) { | ||||
|     void GetBlockedUserListIds(HLERequestContext& ctx) { | ||||
|         // This is safe to stub, as there should be no adverse consequences from reporting no | ||||
|         // blocked users. | ||||
|         LOG_WARNING(Service_Friend, "(STUBBED) called"); | ||||
| @@ -153,21 +153,21 @@ private: | ||||
|         rb.Push<u32>(0); // Indicates there are no blocked users | ||||
|     } | ||||
|  | ||||
|     void DeclareCloseOnlinePlaySession(Kernel::HLERequestContext& ctx) { | ||||
|     void DeclareCloseOnlinePlaySession(HLERequestContext& ctx) { | ||||
|         // Stub used by Splatoon 2 | ||||
|         LOG_WARNING(Service_Friend, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void UpdateUserPresence(Kernel::HLERequestContext& ctx) { | ||||
|     void UpdateUserPresence(HLERequestContext& ctx) { | ||||
|         // Stub used by Retro City Rampage | ||||
|         LOG_WARNING(Service_Friend, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetPlayHistoryRegistrationKey(Kernel::HLERequestContext& ctx) { | ||||
|     void GetPlayHistoryRegistrationKey(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto local_play = rp.Pop<bool>(); | ||||
|         const auto uuid = rp.PopRaw<Common::UUID>(); | ||||
| @@ -179,7 +179,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetFriendList(Kernel::HLERequestContext& ctx) { | ||||
|     void GetFriendList(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto friend_offset = rp.Pop<u32>(); | ||||
|         const auto uuid = rp.PopRaw<Common::UUID>(); | ||||
| @@ -195,7 +195,7 @@ private: | ||||
|         // TODO(ogniK): Return a buffer of u64s which are the "NetworkServiceAccountId" | ||||
|     } | ||||
|  | ||||
|     void CheckFriendListAvailability(Kernel::HLERequestContext& ctx) { | ||||
|     void CheckFriendListAvailability(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto uuid{rp.PopRaw<Common::UUID>()}; | ||||
|  | ||||
| @@ -234,7 +234,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void GetEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Friend, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -242,7 +242,7 @@ private: | ||||
|         rb.PushCopyObjects(notification_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void Clear(Kernel::HLERequestContext& ctx) { | ||||
|     void Clear(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Friend, "called"); | ||||
|         while (!notifications.empty()) { | ||||
|             notifications.pop(); | ||||
| @@ -253,7 +253,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Pop(Kernel::HLERequestContext& ctx) { | ||||
|     void Pop(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Friend, "called"); | ||||
|  | ||||
|         if (notifications.empty()) { | ||||
| @@ -312,14 +312,14 @@ private: | ||||
|     States states{}; | ||||
| }; | ||||
|  | ||||
| void Module::Interface::CreateFriendService(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::CreateFriendService(HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.PushIpcInterface<IFriendService>(system); | ||||
|     LOG_DEBUG(Service_Friend, "called"); | ||||
| } | ||||
|  | ||||
| void Module::Interface::CreateNotificationService(Kernel::HLERequestContext& ctx) { | ||||
| void Module::Interface::CreateNotificationService(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     auto uuid = rp.PopRaw<Common::UUID>(); | ||||
|  | ||||
|   | ||||
| @@ -19,8 +19,8 @@ public: | ||||
|                            const char* name); | ||||
|         ~Interface() override; | ||||
|  | ||||
|         void CreateFriendService(Kernel::HLERequestContext& ctx); | ||||
|         void CreateNotificationService(Kernel::HLERequestContext& ctx); | ||||
|         void CreateFriendService(HLERequestContext& ctx); | ||||
|         void CreateNotificationService(HLERequestContext& ctx); | ||||
|  | ||||
|     protected: | ||||
|         std::shared_ptr<Module> module; | ||||
|   | ||||
| @@ -5,12 +5,12 @@ | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_process.h" | ||||
| #include "core/hle/kernel/kernel.h" | ||||
| #include "core/hle/service/glue/arp.h" | ||||
| #include "core/hle/service/glue/errors.h" | ||||
| #include "core/hle/service/glue/glue_manager.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Glue { | ||||
|  | ||||
| @@ -51,7 +51,7 @@ ARP_R::ARP_R(Core::System& system_, const ARPManager& manager_) | ||||
|  | ||||
| ARP_R::~ARP_R() = default; | ||||
|  | ||||
| void ARP_R::GetApplicationLaunchProperty(Kernel::HLERequestContext& ctx) { | ||||
| void ARP_R::GetApplicationLaunchProperty(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto process_id = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -79,7 +79,7 @@ void ARP_R::GetApplicationLaunchProperty(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(*res); | ||||
| } | ||||
|  | ||||
| void ARP_R::GetApplicationLaunchPropertyWithApplicationId(Kernel::HLERequestContext& ctx) { | ||||
| void ARP_R::GetApplicationLaunchPropertyWithApplicationId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto title_id = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -99,7 +99,7 @@ void ARP_R::GetApplicationLaunchPropertyWithApplicationId(Kernel::HLERequestCont | ||||
|     rb.PushRaw(*res); | ||||
| } | ||||
|  | ||||
| void ARP_R::GetApplicationControlProperty(Kernel::HLERequestContext& ctx) { | ||||
| void ARP_R::GetApplicationControlProperty(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto process_id = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -128,7 +128,7 @@ void ARP_R::GetApplicationControlProperty(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void ARP_R::GetApplicationControlPropertyWithApplicationId(Kernel::HLERequestContext& ctx) { | ||||
| void ARP_R::GetApplicationControlPropertyWithApplicationId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto title_id = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -169,7 +169,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Issue(Kernel::HLERequestContext& ctx) { | ||||
|     void Issue(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto process_id = rp.PopRaw<u64>(); | ||||
|  | ||||
| @@ -197,7 +197,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SetApplicationLaunchProperty(Kernel::HLERequestContext& ctx) { | ||||
|     void SetApplicationLaunchProperty(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ARP, "called"); | ||||
|  | ||||
|         if (issued) { | ||||
| @@ -216,7 +216,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SetApplicationControlProperty(Kernel::HLERequestContext& ctx) { | ||||
|     void SetApplicationControlProperty(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_ARP, "called"); | ||||
|  | ||||
|         if (issued) { | ||||
| @@ -256,7 +256,7 @@ ARP_W::ARP_W(Core::System& system_, ARPManager& manager_) | ||||
|  | ||||
| ARP_W::~ARP_W() = default; | ||||
|  | ||||
| void ARP_W::AcquireRegistrar(Kernel::HLERequestContext& ctx) { | ||||
| void ARP_W::AcquireRegistrar(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_ARP, "called"); | ||||
|  | ||||
|     registrar = std::make_shared<IRegistrar>( | ||||
| @@ -274,7 +274,7 @@ void ARP_W::AcquireRegistrar(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface(registrar); | ||||
| } | ||||
|  | ||||
| void ARP_W::UnregisterApplicationInstance(Kernel::HLERequestContext& ctx) { | ||||
| void ARP_W::UnregisterApplicationInstance(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto process_id = rp.PopRaw<u64>(); | ||||
|  | ||||
|   | ||||
| @@ -16,10 +16,10 @@ public: | ||||
|     ~ARP_R() override; | ||||
|  | ||||
| private: | ||||
|     void GetApplicationLaunchProperty(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationLaunchPropertyWithApplicationId(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationControlProperty(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationControlPropertyWithApplicationId(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationLaunchProperty(HLERequestContext& ctx); | ||||
|     void GetApplicationLaunchPropertyWithApplicationId(HLERequestContext& ctx); | ||||
|     void GetApplicationControlProperty(HLERequestContext& ctx); | ||||
|     void GetApplicationControlPropertyWithApplicationId(HLERequestContext& ctx); | ||||
|  | ||||
|     const ARPManager& manager; | ||||
| }; | ||||
| @@ -30,8 +30,8 @@ public: | ||||
|     ~ARP_W() override; | ||||
|  | ||||
| private: | ||||
|     void AcquireRegistrar(Kernel::HLERequestContext& ctx); | ||||
|     void UnregisterApplicationInstance(Kernel::HLERequestContext& ctx); | ||||
|     void AcquireRegistrar(HLERequestContext& ctx); | ||||
|     void UnregisterApplicationInstance(HLERequestContext& ctx); | ||||
|  | ||||
|     ARPManager& manager; | ||||
|     std::shared_ptr<IRegistrar> registrar; | ||||
|   | ||||
| @@ -3,8 +3,8 @@ | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/glue/bgtc.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Glue { | ||||
|  | ||||
| @@ -20,7 +20,7 @@ BGTC_T::BGTC_T(Core::System& system_) : ServiceFramework{system_, "bgtc:t"} { | ||||
|  | ||||
| BGTC_T::~BGTC_T() = default; | ||||
|  | ||||
| void BGTC_T::OpenTaskService(Kernel::HLERequestContext& ctx) { | ||||
| void BGTC_T::OpenTaskService(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_BGTC, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -16,7 +16,7 @@ public: | ||||
|     explicit BGTC_T(Core::System& system_); | ||||
|     ~BGTC_T() override; | ||||
|  | ||||
|     void OpenTaskService(Kernel::HLERequestContext& ctx); | ||||
|     void OpenTaskService(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| class ITaskService final : public ServiceFramework<ITaskService> { | ||||
|   | ||||
| @@ -6,8 +6,8 @@ | ||||
|  | ||||
| #include "common/assert.h" | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/glue/notif.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
|  | ||||
| namespace Service::Glue { | ||||
|  | ||||
| @@ -28,7 +28,7 @@ NOTIF_A::NOTIF_A(Core::System& system_) : ServiceFramework{system_, "notif:a"} { | ||||
|  | ||||
| NOTIF_A::~NOTIF_A() = default; | ||||
|  | ||||
| void NOTIF_A::RegisterAlarmSetting(Kernel::HLERequestContext& ctx) { | ||||
| void NOTIF_A::RegisterAlarmSetting(HLERequestContext& ctx) { | ||||
|     const auto alarm_setting_buffer_size = ctx.GetReadBufferSize(0); | ||||
|     const auto application_parameter_size = ctx.GetReadBufferSize(1); | ||||
|  | ||||
| @@ -63,7 +63,7 @@ void NOTIF_A::RegisterAlarmSetting(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(new_alarm.alarm_setting_id); | ||||
| } | ||||
|  | ||||
| void NOTIF_A::UpdateAlarmSetting(Kernel::HLERequestContext& ctx) { | ||||
| void NOTIF_A::UpdateAlarmSetting(HLERequestContext& ctx) { | ||||
|     const auto alarm_setting_buffer_size = ctx.GetReadBufferSize(0); | ||||
|     const auto application_parameter_size = ctx.GetReadBufferSize(1); | ||||
|  | ||||
| @@ -91,7 +91,7 @@ void NOTIF_A::UpdateAlarmSetting(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void NOTIF_A::ListAlarmSettings(Kernel::HLERequestContext& ctx) { | ||||
| void NOTIF_A::ListAlarmSettings(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NOTIF, "called, alarm_count={}", alarms.size()); | ||||
|  | ||||
|     // TODO: Only return alarms of this game id | ||||
| @@ -102,7 +102,7 @@ void NOTIF_A::ListAlarmSettings(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<u32>(alarms.size())); | ||||
| } | ||||
|  | ||||
| void NOTIF_A::LoadApplicationParameter(Kernel::HLERequestContext& ctx) { | ||||
| void NOTIF_A::LoadApplicationParameter(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto alarm_setting_id{rp.Pop<AlarmSettingId>()}; | ||||
|  | ||||
| @@ -126,7 +126,7 @@ void NOTIF_A::LoadApplicationParameter(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<u32>(application_parameter.size())); | ||||
| } | ||||
|  | ||||
| void NOTIF_A::DeleteAlarmSetting(Kernel::HLERequestContext& ctx) { | ||||
| void NOTIF_A::DeleteAlarmSetting(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto alarm_setting_id{rp.Pop<AlarmSettingId>()}; | ||||
|  | ||||
| @@ -140,7 +140,7 @@ void NOTIF_A::DeleteAlarmSetting(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void NOTIF_A::Initialize(Kernel::HLERequestContext& ctx) { | ||||
| void NOTIF_A::Initialize(HLERequestContext& ctx) { | ||||
|     // TODO: Load previous alarms from config | ||||
|  | ||||
|     LOG_WARNING(Service_NOTIF, "(STUBBED) called"); | ||||
|   | ||||
| @@ -56,12 +56,12 @@ private: | ||||
|     }; | ||||
|     static_assert(sizeof(AlarmSetting) == 0x40, "AlarmSetting is an invalid size"); | ||||
|  | ||||
|     void RegisterAlarmSetting(Kernel::HLERequestContext& ctx); | ||||
|     void UpdateAlarmSetting(Kernel::HLERequestContext& ctx); | ||||
|     void ListAlarmSettings(Kernel::HLERequestContext& ctx); | ||||
|     void LoadApplicationParameter(Kernel::HLERequestContext& ctx); | ||||
|     void DeleteAlarmSetting(Kernel::HLERequestContext& ctx); | ||||
|     void Initialize(Kernel::HLERequestContext& ctx); | ||||
|     void RegisterAlarmSetting(HLERequestContext& ctx); | ||||
|     void UpdateAlarmSetting(HLERequestContext& ctx); | ||||
|     void ListAlarmSettings(HLERequestContext& ctx); | ||||
|     void LoadApplicationParameter(HLERequestContext& ctx); | ||||
|     void DeleteAlarmSetting(HLERequestContext& ctx); | ||||
|     void Initialize(HLERequestContext& ctx); | ||||
|  | ||||
|     std::vector<AlarmSetting>::iterator GetAlarmFromId(AlarmSettingId alarm_setting_id); | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,6 @@ | ||||
| #include "core/core.h" | ||||
| #include "core/core_timing.h" | ||||
| #include "core/hid/hid_core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_readable_event.h" | ||||
| #include "core/hle/kernel/k_shared_memory.h" | ||||
| #include "core/hle/kernel/k_transfer_memory.h" | ||||
| @@ -18,6 +17,7 @@ | ||||
| #include "core/hle/service/hid/hidbus.h" | ||||
| #include "core/hle/service/hid/irs.h" | ||||
| #include "core/hle/service/hid/xcd.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/memory.h" | ||||
|  | ||||
| @@ -138,7 +138,7 @@ IAppletResource::~IAppletResource() { | ||||
|     system.CoreTiming().UnscheduleEvent(motion_update_event, 0); | ||||
| } | ||||
|  | ||||
| void IAppletResource::GetSharedMemoryHandle(Kernel::HLERequestContext& ctx) { | ||||
| void IAppletResource::GetSharedMemoryHandle(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_HID, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -203,7 +203,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void InitializeVibrationDevice(Kernel::HLERequestContext& ctx) { | ||||
|     void InitializeVibrationDevice(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto vibration_device_handle{rp.PopRaw<Core::HID::VibrationDeviceHandle>()}; | ||||
|  | ||||
| @@ -382,7 +382,7 @@ Hid::Hid(Core::System& system_) | ||||
|  | ||||
| Hid::~Hid() = default; | ||||
|  | ||||
| void Hid::CreateAppletResource(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::CreateAppletResource(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -397,7 +397,7 @@ void Hid::CreateAppletResource(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IAppletResource>(applet_resource); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateDebugPad(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateDebugPad(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -409,7 +409,7 @@ void Hid::ActivateDebugPad(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateTouchScreen(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateTouchScreen(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -421,7 +421,7 @@ void Hid::ActivateTouchScreen(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateMouse(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateMouse(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -433,7 +433,7 @@ void Hid::ActivateMouse(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateKeyboard(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateKeyboard(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -445,7 +445,7 @@ void Hid::ActivateKeyboard(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SendKeyboardLockKeyEvent(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto flags{rp.Pop<u32>()}; | ||||
|  | ||||
| @@ -455,7 +455,7 @@ void Hid::SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateXpad(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateXpad(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         u32 basic_xpad_id; | ||||
| @@ -475,7 +475,7 @@ void Hid::ActivateXpad(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetXpadIDs(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetXpadIDs(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -486,7 +486,7 @@ void Hid::GetXpadIDs(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(0); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         u32 basic_xpad_id; | ||||
| @@ -506,7 +506,7 @@ void Hid::ActivateSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::DeactivateSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::DeactivateSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         u32 basic_xpad_id; | ||||
| @@ -526,7 +526,7 @@ void Hid::DeactivateSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::StartSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StartSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -549,7 +549,7 @@ void Hid::StartSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StopSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -572,7 +572,7 @@ void Hid::StopSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::IsSixAxisSensorFusionEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsSixAxisSensorFusionEnabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -598,7 +598,7 @@ void Hid::IsSixAxisSensorFusionEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(is_enabled); | ||||
| } | ||||
|  | ||||
| void Hid::EnableSixAxisSensorFusion(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::EnableSixAxisSensorFusion(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         bool enable_sixaxis_sensor_fusion; | ||||
| @@ -625,7 +625,7 @@ void Hid::EnableSixAxisSensorFusion(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::SetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetSixAxisSensorFusionParameters(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -652,7 +652,7 @@ void Hid::SetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::GetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetSixAxisSensorFusionParameters(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -679,7 +679,7 @@ void Hid::GetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(fusion_parameters); | ||||
| } | ||||
|  | ||||
| void Hid::ResetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ResetSixAxisSensorFusionParameters(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -713,7 +713,7 @@ void Hid::ResetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result2); | ||||
| } | ||||
|  | ||||
| void Hid::SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetGyroscopeZeroDriftMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto sixaxis_handle{rp.PopRaw<Core::HID::SixAxisSensorHandle>()}; | ||||
|     const auto drift_mode{rp.PopEnum<Core::HID::GyroscopeZeroDriftMode>()}; | ||||
| @@ -732,7 +732,7 @@ void Hid::SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::GetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetGyroscopeZeroDriftMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -757,7 +757,7 @@ void Hid::GetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(drift_mode); | ||||
| } | ||||
|  | ||||
| void Hid::ResetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ResetGyroscopeZeroDriftMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -781,7 +781,7 @@ void Hid::ResetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::IsSixAxisSensorAtRest(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsSixAxisSensorAtRest(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -806,7 +806,7 @@ void Hid::IsSixAxisSensorAtRest(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(is_at_rest); | ||||
| } | ||||
|  | ||||
| void Hid::IsFirmwareUpdateAvailableForSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsFirmwareUpdateAvailableForSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -833,7 +833,7 @@ void Hid::IsFirmwareUpdateAvailableForSixAxisSensor(Kernel::HLERequestContext& c | ||||
|     rb.Push(is_firmware_available); | ||||
| } | ||||
|  | ||||
| void Hid::EnableSixAxisSensorUnalteredPassthrough(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::EnableSixAxisSensorUnalteredPassthrough(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         bool enabled; | ||||
| @@ -859,7 +859,7 @@ void Hid::EnableSixAxisSensorUnalteredPassthrough(Kernel::HLERequestContext& ctx | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::IsSixAxisSensorUnalteredPassthroughEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsSixAxisSensorUnalteredPassthroughEnabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -886,7 +886,7 @@ void Hid::IsSixAxisSensorUnalteredPassthroughEnabled(Kernel::HLERequestContext& | ||||
|     rb.Push(is_unaltered_sisxaxis_enabled); | ||||
| } | ||||
|  | ||||
| void Hid::LoadSixAxisSensorCalibrationParameter(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::LoadSixAxisSensorCalibrationParameter(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -916,7 +916,7 @@ void Hid::LoadSixAxisSensorCalibrationParameter(Kernel::HLERequestContext& ctx) | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::GetSixAxisSensorIcInformation(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetSixAxisSensorIcInformation(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -946,7 +946,7 @@ void Hid::GetSixAxisSensorIcInformation(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::ResetIsSixAxisSensorDeviceNewlyAssigned(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ResetIsSixAxisSensorDeviceNewlyAssigned(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::SixAxisSensorHandle sixaxis_handle; | ||||
| @@ -971,7 +971,7 @@ void Hid::ResetIsSixAxisSensorDeviceNewlyAssigned(Kernel::HLERequestContext& ctx | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateGesture(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateGesture(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         u32 unknown; | ||||
| @@ -991,7 +991,7 @@ void Hid::ActivateGesture(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetSupportedNpadStyleSet(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadStyleSet supported_styleset; | ||||
| @@ -1012,7 +1012,7 @@ void Hid::SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetSupportedNpadStyleSet(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1025,7 +1025,7 @@ void Hid::GetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) { | ||||
|                     .raw); | ||||
| } | ||||
|  | ||||
| void Hid::SetSupportedNpadIdType(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetSupportedNpadIdType(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1038,7 +1038,7 @@ void Hid::SetSupportedNpadIdType(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateNpad(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateNpad(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1050,7 +1050,7 @@ void Hid::ActivateNpad(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::DeactivateNpad(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::DeactivateNpad(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1062,7 +1062,7 @@ void Hid::DeactivateNpad(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::AcquireNpadStyleSetUpdateEventHandle(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::AcquireNpadStyleSetUpdateEventHandle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -1087,7 +1087,7 @@ void Hid::AcquireNpadStyleSetUpdateEventHandle(Kernel::HLERequestContext& ctx) { | ||||
|                            .GetStyleSetChangedEvent(parameters.npad_id)); | ||||
| } | ||||
|  | ||||
| void Hid::DisconnectNpad(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::DisconnectNpad(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -1108,7 +1108,7 @@ void Hid::DisconnectNpad(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetPlayerLedPattern(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetPlayerLedPattern(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto npad_id{rp.PopEnum<Core::HID::NpadIdType>()}; | ||||
|  | ||||
| @@ -1123,7 +1123,7 @@ void Hid::GetPlayerLedPattern(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(pattern.raw); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateNpadWithRevision(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateNpadWithRevision(HLERequestContext& ctx) { | ||||
|     // Should have no effect with how our npad sets up the data | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
| @@ -1144,7 +1144,7 @@ void Hid::ActivateNpadWithRevision(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadJoyHoldType(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadJoyHoldType(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|     const auto hold_type{rp.PopEnum<Controller_NPad::NpadJoyHoldType>()}; | ||||
| @@ -1158,7 +1158,7 @@ void Hid::SetNpadJoyHoldType(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetNpadJoyHoldType(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetNpadJoyHoldType(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1169,7 +1169,7 @@ void Hid::GetNpadJoyHoldType(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(applet_resource->GetController<Controller_NPad>(HidController::NPad).GetHoldType()); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadJoyAssignmentModeSingleByDefault(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadJoyAssignmentModeSingleByDefault(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -1191,7 +1191,7 @@ void Hid::SetNpadJoyAssignmentModeSingleByDefault(Kernel::HLERequestContext& ctx | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadJoyAssignmentModeSingle(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadJoyAssignmentModeSingle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -1215,7 +1215,7 @@ void Hid::SetNpadJoyAssignmentModeSingle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadJoyAssignmentModeDual(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadJoyAssignmentModeDual(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -1236,7 +1236,7 @@ void Hid::SetNpadJoyAssignmentModeDual(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::MergeSingleJoyAsDualJoy(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::MergeSingleJoyAsDualJoy(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto npad_id_1{rp.PopEnum<Core::HID::NpadIdType>()}; | ||||
|     const auto npad_id_2{rp.PopEnum<Core::HID::NpadIdType>()}; | ||||
| @@ -1252,7 +1252,7 @@ void Hid::MergeSingleJoyAsDualJoy(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::StartLrAssignmentMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StartLrAssignmentMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1264,7 +1264,7 @@ void Hid::StartLrAssignmentMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::StopLrAssignmentMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StopLrAssignmentMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1276,7 +1276,7 @@ void Hid::StopLrAssignmentMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadHandheldActivationMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|     const auto activation_mode{rp.PopEnum<Controller_NPad::NpadHandheldActivationMode>()}; | ||||
| @@ -1291,7 +1291,7 @@ void Hid::SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetNpadHandheldActivationMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1303,7 +1303,7 @@ void Hid::GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx) { | ||||
|                     .GetNpadHandheldActivationMode()); | ||||
| } | ||||
|  | ||||
| void Hid::SwapNpadAssignment(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SwapNpadAssignment(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto npad_id_1{rp.PopEnum<Core::HID::NpadIdType>()}; | ||||
|     const auto npad_id_2{rp.PopEnum<Core::HID::NpadIdType>()}; | ||||
| @@ -1319,7 +1319,7 @@ void Hid::SwapNpadAssignment(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsUnintendedHomeButtonInputProtectionEnabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -1343,7 +1343,7 @@ void Hid::IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext | ||||
|     rb.Push(is_enabled); | ||||
| } | ||||
|  | ||||
| void Hid::EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::EnableUnintendedHomeButtonInputProtection(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         bool unintended_home_button_input_protection; | ||||
| @@ -1369,7 +1369,7 @@ void Hid::EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& c | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadAnalogStickUseCenterClamp(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadAnalogStickUseCenterClamp(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         bool analog_stick_use_center_clamp; | ||||
| @@ -1392,7 +1392,7 @@ void Hid::SetNpadAnalogStickUseCenterClamp(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadCaptureButtonAssignment(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadCaptureButtonAssignment(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadStyleSet npad_styleset; | ||||
| @@ -1412,7 +1412,7 @@ void Hid::SetNpadCaptureButtonAssignment(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ClearNpadCaptureButtonAssignment(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ClearNpadCaptureButtonAssignment(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1423,7 +1423,7 @@ void Hid::ClearNpadCaptureButtonAssignment(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetVibrationDeviceInfo(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetVibrationDeviceInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto vibration_device_handle{rp.PopRaw<Core::HID::VibrationDeviceHandle>()}; | ||||
|     const auto& controller = | ||||
| @@ -1483,7 +1483,7 @@ void Hid::GetVibrationDeviceInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(vibration_device_info); | ||||
| } | ||||
|  | ||||
| void Hid::SendVibrationValue(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SendVibrationValue(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::VibrationDeviceHandle vibration_device_handle; | ||||
| @@ -1508,7 +1508,7 @@ void Hid::SendVibrationValue(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetActualVibrationValue(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetActualVibrationValue(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::VibrationDeviceHandle vibration_device_handle; | ||||
| @@ -1531,7 +1531,7 @@ void Hid::GetActualVibrationValue(Kernel::HLERequestContext& ctx) { | ||||
|                    .GetLastVibration(parameters.vibration_device_handle)); | ||||
| } | ||||
|  | ||||
| void Hid::CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::CreateActiveVibrationDeviceList(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_HID, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -1539,7 +1539,7 @@ void Hid::CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IActiveVibrationDeviceList>(system, applet_resource); | ||||
| } | ||||
|  | ||||
| void Hid::PermitVibration(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::PermitVibration(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto can_vibrate{rp.Pop<bool>()}; | ||||
|  | ||||
| @@ -1553,7 +1553,7 @@ void Hid::PermitVibration(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::IsVibrationPermitted(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsVibrationPermitted(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_HID, "called"); | ||||
|  | ||||
|     // nnSDK checks if a float is greater than zero. We return the bool we stored earlier | ||||
| @@ -1564,7 +1564,7 @@ void Hid::IsVibrationPermitted(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(is_enabled); | ||||
| } | ||||
|  | ||||
| void Hid::SendVibrationValues(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SendVibrationValues(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1588,7 +1588,7 @@ void Hid::SendVibrationValues(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SendVibrationGcErmCommand(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SendVibrationGcErmCommand(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::VibrationDeviceHandle vibration_device_handle; | ||||
| @@ -1649,7 +1649,7 @@ void Hid::SendVibrationGcErmCommand(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetActualVibrationGcErmCommand(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetActualVibrationGcErmCommand(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::VibrationDeviceHandle vibration_device_handle; | ||||
| @@ -1691,7 +1691,7 @@ void Hid::GetActualVibrationGcErmCommand(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(gc_erm_command); | ||||
| } | ||||
|  | ||||
| void Hid::BeginPermitVibrationSession(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::BeginPermitVibrationSession(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1704,7 +1704,7 @@ void Hid::BeginPermitVibrationSession(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::EndPermitVibrationSession(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::EndPermitVibrationSession(HLERequestContext& ctx) { | ||||
|     applet_resource->GetController<Controller_NPad>(HidController::NPad) | ||||
|         .SetPermitVibrationSession(false); | ||||
|  | ||||
| @@ -1714,7 +1714,7 @@ void Hid::EndPermitVibrationSession(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::IsVibrationDeviceMounted(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsVibrationDeviceMounted(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::VibrationDeviceHandle vibration_device_handle; | ||||
| @@ -1737,7 +1737,7 @@ void Hid::IsVibrationDeviceMounted(Kernel::HLERequestContext& ctx) { | ||||
|                 .IsVibrationDeviceMounted(parameters.vibration_device_handle)); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateConsoleSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1749,7 +1749,7 @@ void Hid::ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StartConsoleSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::ConsoleSixAxisSensorHandle console_sixaxis_handle; | ||||
| @@ -1769,7 +1769,7 @@ void Hid::StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StopConsoleSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::ConsoleSixAxisSensorHandle console_sixaxis_handle; | ||||
| @@ -1789,7 +1789,7 @@ void Hid::StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ActivateSevenSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1801,7 +1801,7 @@ void Hid::ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StartSevenSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1812,7 +1812,7 @@ void Hid::StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::StopSevenSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1823,7 +1823,7 @@ void Hid::StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::InitializeSevenSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|     const auto t_mem_1_size{rp.Pop<u64>()}; | ||||
| @@ -1873,7 +1873,7 @@ void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::FinalizeSevenSixAxisSensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1884,7 +1884,7 @@ void Hid::FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -1897,7 +1897,7 @@ void Hid::ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::IsUsbFullKeyControllerEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsUsbFullKeyControllerEnabled(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
| @@ -1907,7 +1907,7 @@ void Hid::IsUsbFullKeyControllerEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(false); | ||||
| } | ||||
|  | ||||
| void Hid::GetPalmaConnectionHandle(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetPalmaConnectionHandle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -1930,7 +1930,7 @@ void Hid::GetPalmaConnectionHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(handle); | ||||
| } | ||||
|  | ||||
| void Hid::InitializePalma(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::InitializePalma(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -1943,7 +1943,7 @@ void Hid::InitializePalma(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::AcquirePalmaOperationCompleteEvent(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::AcquirePalmaOperationCompleteEvent(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -1956,7 +1956,7 @@ void Hid::AcquirePalmaOperationCompleteEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(controller.AcquirePalmaOperationCompleteEvent(connection_handle)); | ||||
| } | ||||
|  | ||||
| void Hid::GetPalmaOperationInfo(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetPalmaOperationInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -1978,7 +1978,7 @@ void Hid::GetPalmaOperationInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<u64>(operation_type)); | ||||
| } | ||||
|  | ||||
| void Hid::PlayPalmaActivity(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::PlayPalmaActivity(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|     const auto palma_activity{rp.Pop<u64>()}; | ||||
| @@ -1993,7 +1993,7 @@ void Hid::PlayPalmaActivity(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::SetPalmaFrModeType(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetPalmaFrModeType(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|     const auto fr_mode{rp.PopEnum<Controller_Palma::PalmaFrModeType>()}; | ||||
| @@ -2008,7 +2008,7 @@ void Hid::SetPalmaFrModeType(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::ReadPalmaStep(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ReadPalmaStep(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -2021,7 +2021,7 @@ void Hid::ReadPalmaStep(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::EnablePalmaStep(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::EnablePalmaStep(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         bool is_enabled; | ||||
| @@ -2043,7 +2043,7 @@ void Hid::EnablePalmaStep(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::ResetPalmaStep(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ResetPalmaStep(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -2056,21 +2056,21 @@ void Hid::ResetPalmaStep(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::ReadPalmaApplicationSection(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ReadPalmaApplicationSection(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::WritePalmaApplicationSection(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::WritePalmaApplicationSection(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ReadPalmaUniqueCode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ReadPalmaUniqueCode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -2083,7 +2083,7 @@ void Hid::ReadPalmaUniqueCode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetPalmaUniqueCodeInvalid(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetPalmaUniqueCodeInvalid(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -2096,14 +2096,14 @@ void Hid::SetPalmaUniqueCodeInvalid(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::WritePalmaActivityEntry(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::WritePalmaActivityEntry(HLERequestContext& ctx) { | ||||
|     LOG_CRITICAL(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::WritePalmaRgbLedPatternEntry(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::WritePalmaRgbLedPatternEntry(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|     const auto unknown{rp.Pop<u64>()}; | ||||
| @@ -2120,7 +2120,7 @@ void Hid::WritePalmaRgbLedPatternEntry(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::WritePalmaWaveEntry(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::WritePalmaWaveEntry(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|     const auto wave_set{rp.PopEnum<Controller_Palma::PalmaWaveSet>()}; | ||||
| @@ -2155,7 +2155,7 @@ void Hid::WritePalmaWaveEntry(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetPalmaDataBaseIdentificationVersion(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         s32 database_id_version; | ||||
| @@ -2177,7 +2177,7 @@ void Hid::SetPalmaDataBaseIdentificationVersion(Kernel::HLERequestContext& ctx) | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetPalmaDataBaseIdentificationVersion(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -2190,14 +2190,14 @@ void Hid::GetPalmaDataBaseIdentificationVersion(Kernel::HLERequestContext& ctx) | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SuspendPalmaFeature(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SuspendPalmaFeature(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetPalmaOperationResult(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetPalmaOperationResult(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -2210,21 +2210,21 @@ void Hid::GetPalmaOperationResult(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void Hid::ReadPalmaPlayLog(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ReadPalmaPlayLog(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::ResetPalmaPlayLog(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::ResetPalmaPlayLog(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetIsPalmaAllConnectable(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         bool is_palma_all_connectable; | ||||
| @@ -2246,14 +2246,14 @@ void Hid::SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetIsPalmaPairedConnectable(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetIsPalmaPairedConnectable(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::PairPalma(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::PairPalma(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto connection_handle{rp.PopRaw<Controller_Palma::PalmaConnectionHandle>()}; | ||||
|  | ||||
| @@ -2266,7 +2266,7 @@ void Hid::PairPalma(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetPalmaBoostMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto palma_boost_mode{rp.Pop<bool>()}; | ||||
|  | ||||
| @@ -2279,35 +2279,35 @@ void Hid::SetPalmaBoostMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::CancelWritePalmaWaveEntry(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::CancelWritePalmaWaveEntry(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::EnablePalmaBoostMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::EnablePalmaBoostMode(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetPalmaBluetoothAddress(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetPalmaBluetoothAddress(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetDisallowedPalmaConnection(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetDisallowedPalmaConnection(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::SetNpadCommunicationMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetNpadCommunicationMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|     const auto communication_mode{rp.PopEnum<Controller_NPad::NpadCommunicationMode>()}; | ||||
| @@ -2322,7 +2322,7 @@ void Hid::SetNpadCommunicationMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::GetNpadCommunicationMode(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::GetNpadCommunicationMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
| @@ -2333,7 +2333,7 @@ void Hid::GetNpadCommunicationMode(Kernel::HLERequestContext& ctx) { | ||||
|                     .GetNpadCommunicationMode()); | ||||
| } | ||||
|  | ||||
| void Hid::SetTouchScreenConfiguration(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::SetTouchScreenConfiguration(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto touchscreen_mode{rp.PopRaw<Controller_Touchscreen::TouchScreenConfigurationForNx>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
| @@ -2345,7 +2345,7 @@ void Hid::SetTouchScreenConfiguration(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void Hid::IsFirmwareUpdateNeededForNotification(Kernel::HLERequestContext& ctx) { | ||||
| void Hid::IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         s32 unknown; | ||||
| @@ -2719,7 +2719,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void ApplyNpadSystemCommonPolicy(Kernel::HLERequestContext& ctx) { | ||||
|     void ApplyNpadSystemCommonPolicy(HLERequestContext& ctx) { | ||||
|         // We already do this for homebrew so we can just stub it out | ||||
|         LOG_WARNING(Service_HID, "called"); | ||||
|  | ||||
| @@ -2727,7 +2727,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetUniquePadsFromNpad(Kernel::HLERequestContext& ctx) { | ||||
|     void GetUniquePadsFromNpad(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto npad_id_type{rp.PopEnum<Core::HID::NpadIdType>()}; | ||||
|  | ||||
|   | ||||
| @@ -76,7 +76,7 @@ private: | ||||
|             std::make_unique<T>(system.HIDCore(), shared_memory, service_context); | ||||
|     } | ||||
|  | ||||
|     void GetSharedMemoryHandle(Kernel::HLERequestContext& ctx); | ||||
|     void GetSharedMemoryHandle(HLERequestContext& ctx); | ||||
|     void UpdateControllers(std::uintptr_t user_data, std::chrono::nanoseconds ns_late); | ||||
|     void UpdateNpad(std::uintptr_t user_data, std::chrono::nanoseconds ns_late); | ||||
|     void UpdateMouseKeyboard(std::uintptr_t user_data, std::chrono::nanoseconds ns_late); | ||||
| @@ -101,115 +101,115 @@ public: | ||||
|     std::shared_ptr<IAppletResource> GetAppletResource(); | ||||
|  | ||||
| private: | ||||
|     void CreateAppletResource(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateDebugPad(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateTouchScreen(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateMouse(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateKeyboard(Kernel::HLERequestContext& ctx); | ||||
|     void SendKeyboardLockKeyEvent(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateXpad(Kernel::HLERequestContext& ctx); | ||||
|     void GetXpadIDs(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void DeactivateSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void StartSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void StopSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void IsSixAxisSensorFusionEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void EnableSixAxisSensorFusion(Kernel::HLERequestContext& ctx); | ||||
|     void SetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx); | ||||
|     void GetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx); | ||||
|     void ResetSixAxisSensorFusionParameters(Kernel::HLERequestContext& ctx); | ||||
|     void SetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); | ||||
|     void ResetGyroscopeZeroDriftMode(Kernel::HLERequestContext& ctx); | ||||
|     void IsSixAxisSensorAtRest(Kernel::HLERequestContext& ctx); | ||||
|     void IsFirmwareUpdateAvailableForSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void EnableSixAxisSensorUnalteredPassthrough(Kernel::HLERequestContext& ctx); | ||||
|     void IsSixAxisSensorUnalteredPassthroughEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void LoadSixAxisSensorCalibrationParameter(Kernel::HLERequestContext& ctx); | ||||
|     void GetSixAxisSensorIcInformation(Kernel::HLERequestContext& ctx); | ||||
|     void ResetIsSixAxisSensorDeviceNewlyAssigned(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateGesture(Kernel::HLERequestContext& ctx); | ||||
|     void SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx); | ||||
|     void GetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx); | ||||
|     void SetSupportedNpadIdType(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateNpad(Kernel::HLERequestContext& ctx); | ||||
|     void DeactivateNpad(Kernel::HLERequestContext& ctx); | ||||
|     void AcquireNpadStyleSetUpdateEventHandle(Kernel::HLERequestContext& ctx); | ||||
|     void DisconnectNpad(Kernel::HLERequestContext& ctx); | ||||
|     void GetPlayerLedPattern(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateNpadWithRevision(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadJoyHoldType(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadJoyHoldType(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadJoyAssignmentModeSingleByDefault(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadJoyAssignmentModeSingle(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadJoyAssignmentModeDual(Kernel::HLERequestContext& ctx); | ||||
|     void MergeSingleJoyAsDualJoy(Kernel::HLERequestContext& ctx); | ||||
|     void StartLrAssignmentMode(Kernel::HLERequestContext& ctx); | ||||
|     void StopLrAssignmentMode(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadHandheldActivationMode(Kernel::HLERequestContext& ctx); | ||||
|     void SwapNpadAssignment(Kernel::HLERequestContext& ctx); | ||||
|     void IsUnintendedHomeButtonInputProtectionEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void EnableUnintendedHomeButtonInputProtection(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadAnalogStickUseCenterClamp(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadCaptureButtonAssignment(Kernel::HLERequestContext& ctx); | ||||
|     void ClearNpadCaptureButtonAssignment(Kernel::HLERequestContext& ctx); | ||||
|     void GetVibrationDeviceInfo(Kernel::HLERequestContext& ctx); | ||||
|     void SendVibrationValue(Kernel::HLERequestContext& ctx); | ||||
|     void GetActualVibrationValue(Kernel::HLERequestContext& ctx); | ||||
|     void CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx); | ||||
|     void PermitVibration(Kernel::HLERequestContext& ctx); | ||||
|     void IsVibrationPermitted(Kernel::HLERequestContext& ctx); | ||||
|     void SendVibrationValues(Kernel::HLERequestContext& ctx); | ||||
|     void SendVibrationGcErmCommand(Kernel::HLERequestContext& ctx); | ||||
|     void GetActualVibrationGcErmCommand(Kernel::HLERequestContext& ctx); | ||||
|     void BeginPermitVibrationSession(Kernel::HLERequestContext& ctx); | ||||
|     void EndPermitVibrationSession(Kernel::HLERequestContext& ctx); | ||||
|     void IsVibrationDeviceMounted(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void StartConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void StopConsoleSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void StartSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void FinalizeSevenSixAxisSensor(Kernel::HLERequestContext& ctx); | ||||
|     void ResetSevenSixAxisSensorTimestamp(Kernel::HLERequestContext& ctx); | ||||
|     void IsUsbFullKeyControllerEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void GetPalmaConnectionHandle(Kernel::HLERequestContext& ctx); | ||||
|     void InitializePalma(Kernel::HLERequestContext& ctx); | ||||
|     void AcquirePalmaOperationCompleteEvent(Kernel::HLERequestContext& ctx); | ||||
|     void GetPalmaOperationInfo(Kernel::HLERequestContext& ctx); | ||||
|     void PlayPalmaActivity(Kernel::HLERequestContext& ctx); | ||||
|     void SetPalmaFrModeType(Kernel::HLERequestContext& ctx); | ||||
|     void ReadPalmaStep(Kernel::HLERequestContext& ctx); | ||||
|     void EnablePalmaStep(Kernel::HLERequestContext& ctx); | ||||
|     void ResetPalmaStep(Kernel::HLERequestContext& ctx); | ||||
|     void ReadPalmaApplicationSection(Kernel::HLERequestContext& ctx); | ||||
|     void WritePalmaApplicationSection(Kernel::HLERequestContext& ctx); | ||||
|     void ReadPalmaUniqueCode(Kernel::HLERequestContext& ctx); | ||||
|     void SetPalmaUniqueCodeInvalid(Kernel::HLERequestContext& ctx); | ||||
|     void WritePalmaActivityEntry(Kernel::HLERequestContext& ctx); | ||||
|     void WritePalmaRgbLedPatternEntry(Kernel::HLERequestContext& ctx); | ||||
|     void WritePalmaWaveEntry(Kernel::HLERequestContext& ctx); | ||||
|     void SetPalmaDataBaseIdentificationVersion(Kernel::HLERequestContext& ctx); | ||||
|     void GetPalmaDataBaseIdentificationVersion(Kernel::HLERequestContext& ctx); | ||||
|     void SuspendPalmaFeature(Kernel::HLERequestContext& ctx); | ||||
|     void GetPalmaOperationResult(Kernel::HLERequestContext& ctx); | ||||
|     void ReadPalmaPlayLog(Kernel::HLERequestContext& ctx); | ||||
|     void ResetPalmaPlayLog(Kernel::HLERequestContext& ctx); | ||||
|     void SetIsPalmaAllConnectable(Kernel::HLERequestContext& ctx); | ||||
|     void SetIsPalmaPairedConnectable(Kernel::HLERequestContext& ctx); | ||||
|     void PairPalma(Kernel::HLERequestContext& ctx); | ||||
|     void SetPalmaBoostMode(Kernel::HLERequestContext& ctx); | ||||
|     void CancelWritePalmaWaveEntry(Kernel::HLERequestContext& ctx); | ||||
|     void EnablePalmaBoostMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetPalmaBluetoothAddress(Kernel::HLERequestContext& ctx); | ||||
|     void SetDisallowedPalmaConnection(Kernel::HLERequestContext& ctx); | ||||
|     void SetNpadCommunicationMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadCommunicationMode(Kernel::HLERequestContext& ctx); | ||||
|     void SetTouchScreenConfiguration(Kernel::HLERequestContext& ctx); | ||||
|     void IsFirmwareUpdateNeededForNotification(Kernel::HLERequestContext& ctx); | ||||
|     void CreateAppletResource(HLERequestContext& ctx); | ||||
|     void ActivateDebugPad(HLERequestContext& ctx); | ||||
|     void ActivateTouchScreen(HLERequestContext& ctx); | ||||
|     void ActivateMouse(HLERequestContext& ctx); | ||||
|     void ActivateKeyboard(HLERequestContext& ctx); | ||||
|     void SendKeyboardLockKeyEvent(HLERequestContext& ctx); | ||||
|     void ActivateXpad(HLERequestContext& ctx); | ||||
|     void GetXpadIDs(HLERequestContext& ctx); | ||||
|     void ActivateSixAxisSensor(HLERequestContext& ctx); | ||||
|     void DeactivateSixAxisSensor(HLERequestContext& ctx); | ||||
|     void StartSixAxisSensor(HLERequestContext& ctx); | ||||
|     void StopSixAxisSensor(HLERequestContext& ctx); | ||||
|     void IsSixAxisSensorFusionEnabled(HLERequestContext& ctx); | ||||
|     void EnableSixAxisSensorFusion(HLERequestContext& ctx); | ||||
|     void SetSixAxisSensorFusionParameters(HLERequestContext& ctx); | ||||
|     void GetSixAxisSensorFusionParameters(HLERequestContext& ctx); | ||||
|     void ResetSixAxisSensorFusionParameters(HLERequestContext& ctx); | ||||
|     void SetGyroscopeZeroDriftMode(HLERequestContext& ctx); | ||||
|     void GetGyroscopeZeroDriftMode(HLERequestContext& ctx); | ||||
|     void ResetGyroscopeZeroDriftMode(HLERequestContext& ctx); | ||||
|     void IsSixAxisSensorAtRest(HLERequestContext& ctx); | ||||
|     void IsFirmwareUpdateAvailableForSixAxisSensor(HLERequestContext& ctx); | ||||
|     void EnableSixAxisSensorUnalteredPassthrough(HLERequestContext& ctx); | ||||
|     void IsSixAxisSensorUnalteredPassthroughEnabled(HLERequestContext& ctx); | ||||
|     void LoadSixAxisSensorCalibrationParameter(HLERequestContext& ctx); | ||||
|     void GetSixAxisSensorIcInformation(HLERequestContext& ctx); | ||||
|     void ResetIsSixAxisSensorDeviceNewlyAssigned(HLERequestContext& ctx); | ||||
|     void ActivateGesture(HLERequestContext& ctx); | ||||
|     void SetSupportedNpadStyleSet(HLERequestContext& ctx); | ||||
|     void GetSupportedNpadStyleSet(HLERequestContext& ctx); | ||||
|     void SetSupportedNpadIdType(HLERequestContext& ctx); | ||||
|     void ActivateNpad(HLERequestContext& ctx); | ||||
|     void DeactivateNpad(HLERequestContext& ctx); | ||||
|     void AcquireNpadStyleSetUpdateEventHandle(HLERequestContext& ctx); | ||||
|     void DisconnectNpad(HLERequestContext& ctx); | ||||
|     void GetPlayerLedPattern(HLERequestContext& ctx); | ||||
|     void ActivateNpadWithRevision(HLERequestContext& ctx); | ||||
|     void SetNpadJoyHoldType(HLERequestContext& ctx); | ||||
|     void GetNpadJoyHoldType(HLERequestContext& ctx); | ||||
|     void SetNpadJoyAssignmentModeSingleByDefault(HLERequestContext& ctx); | ||||
|     void SetNpadJoyAssignmentModeSingle(HLERequestContext& ctx); | ||||
|     void SetNpadJoyAssignmentModeDual(HLERequestContext& ctx); | ||||
|     void MergeSingleJoyAsDualJoy(HLERequestContext& ctx); | ||||
|     void StartLrAssignmentMode(HLERequestContext& ctx); | ||||
|     void StopLrAssignmentMode(HLERequestContext& ctx); | ||||
|     void SetNpadHandheldActivationMode(HLERequestContext& ctx); | ||||
|     void GetNpadHandheldActivationMode(HLERequestContext& ctx); | ||||
|     void SwapNpadAssignment(HLERequestContext& ctx); | ||||
|     void IsUnintendedHomeButtonInputProtectionEnabled(HLERequestContext& ctx); | ||||
|     void EnableUnintendedHomeButtonInputProtection(HLERequestContext& ctx); | ||||
|     void SetNpadAnalogStickUseCenterClamp(HLERequestContext& ctx); | ||||
|     void SetNpadCaptureButtonAssignment(HLERequestContext& ctx); | ||||
|     void ClearNpadCaptureButtonAssignment(HLERequestContext& ctx); | ||||
|     void GetVibrationDeviceInfo(HLERequestContext& ctx); | ||||
|     void SendVibrationValue(HLERequestContext& ctx); | ||||
|     void GetActualVibrationValue(HLERequestContext& ctx); | ||||
|     void CreateActiveVibrationDeviceList(HLERequestContext& ctx); | ||||
|     void PermitVibration(HLERequestContext& ctx); | ||||
|     void IsVibrationPermitted(HLERequestContext& ctx); | ||||
|     void SendVibrationValues(HLERequestContext& ctx); | ||||
|     void SendVibrationGcErmCommand(HLERequestContext& ctx); | ||||
|     void GetActualVibrationGcErmCommand(HLERequestContext& ctx); | ||||
|     void BeginPermitVibrationSession(HLERequestContext& ctx); | ||||
|     void EndPermitVibrationSession(HLERequestContext& ctx); | ||||
|     void IsVibrationDeviceMounted(HLERequestContext& ctx); | ||||
|     void ActivateConsoleSixAxisSensor(HLERequestContext& ctx); | ||||
|     void StartConsoleSixAxisSensor(HLERequestContext& ctx); | ||||
|     void StopConsoleSixAxisSensor(HLERequestContext& ctx); | ||||
|     void ActivateSevenSixAxisSensor(HLERequestContext& ctx); | ||||
|     void StartSevenSixAxisSensor(HLERequestContext& ctx); | ||||
|     void StopSevenSixAxisSensor(HLERequestContext& ctx); | ||||
|     void InitializeSevenSixAxisSensor(HLERequestContext& ctx); | ||||
|     void FinalizeSevenSixAxisSensor(HLERequestContext& ctx); | ||||
|     void ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx); | ||||
|     void IsUsbFullKeyControllerEnabled(HLERequestContext& ctx); | ||||
|     void GetPalmaConnectionHandle(HLERequestContext& ctx); | ||||
|     void InitializePalma(HLERequestContext& ctx); | ||||
|     void AcquirePalmaOperationCompleteEvent(HLERequestContext& ctx); | ||||
|     void GetPalmaOperationInfo(HLERequestContext& ctx); | ||||
|     void PlayPalmaActivity(HLERequestContext& ctx); | ||||
|     void SetPalmaFrModeType(HLERequestContext& ctx); | ||||
|     void ReadPalmaStep(HLERequestContext& ctx); | ||||
|     void EnablePalmaStep(HLERequestContext& ctx); | ||||
|     void ResetPalmaStep(HLERequestContext& ctx); | ||||
|     void ReadPalmaApplicationSection(HLERequestContext& ctx); | ||||
|     void WritePalmaApplicationSection(HLERequestContext& ctx); | ||||
|     void ReadPalmaUniqueCode(HLERequestContext& ctx); | ||||
|     void SetPalmaUniqueCodeInvalid(HLERequestContext& ctx); | ||||
|     void WritePalmaActivityEntry(HLERequestContext& ctx); | ||||
|     void WritePalmaRgbLedPatternEntry(HLERequestContext& ctx); | ||||
|     void WritePalmaWaveEntry(HLERequestContext& ctx); | ||||
|     void SetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx); | ||||
|     void GetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx); | ||||
|     void SuspendPalmaFeature(HLERequestContext& ctx); | ||||
|     void GetPalmaOperationResult(HLERequestContext& ctx); | ||||
|     void ReadPalmaPlayLog(HLERequestContext& ctx); | ||||
|     void ResetPalmaPlayLog(HLERequestContext& ctx); | ||||
|     void SetIsPalmaAllConnectable(HLERequestContext& ctx); | ||||
|     void SetIsPalmaPairedConnectable(HLERequestContext& ctx); | ||||
|     void PairPalma(HLERequestContext& ctx); | ||||
|     void SetPalmaBoostMode(HLERequestContext& ctx); | ||||
|     void CancelWritePalmaWaveEntry(HLERequestContext& ctx); | ||||
|     void EnablePalmaBoostMode(HLERequestContext& ctx); | ||||
|     void GetPalmaBluetoothAddress(HLERequestContext& ctx); | ||||
|     void SetDisallowedPalmaConnection(HLERequestContext& ctx); | ||||
|     void SetNpadCommunicationMode(HLERequestContext& ctx); | ||||
|     void GetNpadCommunicationMode(HLERequestContext& ctx); | ||||
|     void SetTouchScreenConfiguration(HLERequestContext& ctx); | ||||
|     void IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx); | ||||
|  | ||||
|     std::shared_ptr<IAppletResource> applet_resource; | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,6 @@ | ||||
| #include "core/core_timing.h" | ||||
| #include "core/core_timing_util.h" | ||||
| #include "core/hid/hid_types.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/kernel/k_readable_event.h" | ||||
| #include "core/hle/kernel/k_shared_memory.h" | ||||
| @@ -16,6 +15,7 @@ | ||||
| #include "core/hle/service/hid/hidbus/ringcon.h" | ||||
| #include "core/hle/service/hid/hidbus/starlink.h" | ||||
| #include "core/hle/service/hid/hidbus/stubbed.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/service.h" | ||||
| #include "core/memory.h" | ||||
|  | ||||
| @@ -99,7 +99,7 @@ std::optional<std::size_t> HidBus::GetDeviceIndexFromHandle(BusHandle handle) co | ||||
|     return std::nullopt; | ||||
| } | ||||
|  | ||||
| void HidBus::GetBusHandle(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::GetBusHandle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::HID::NpadIdType npad_id; | ||||
| @@ -165,7 +165,7 @@ void HidBus::GetBusHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(out_data); | ||||
| } | ||||
|  | ||||
| void HidBus::IsExternalDeviceConnected(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::IsExternalDeviceConnected(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
|  | ||||
| @@ -193,7 +193,7 @@ void HidBus::IsExternalDeviceConnected(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| void HidBus::Initialize(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::Initialize(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
| @@ -245,7 +245,7 @@ void HidBus::Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| void HidBus::Finalize(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::Finalize(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
| @@ -284,7 +284,7 @@ void HidBus::Finalize(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| void HidBus::EnableExternalDevice(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::EnableExternalDevice(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         bool enable; | ||||
| @@ -322,7 +322,7 @@ void HidBus::EnableExternalDevice(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| void HidBus::GetExternalDeviceId(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::GetExternalDeviceId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
|  | ||||
| @@ -349,7 +349,7 @@ void HidBus::GetExternalDeviceId(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| void HidBus::SendCommandAsync(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::SendCommandAsync(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto data = ctx.ReadBuffer(); | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
| @@ -377,7 +377,7 @@ void HidBus::SendCommandAsync(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| }; | ||||
|  | ||||
| void HidBus::GetSendCommandAsynceResult(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::GetSendCommandAsynceResult(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
|  | ||||
| @@ -406,7 +406,7 @@ void HidBus::GetSendCommandAsynceResult(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| }; | ||||
|  | ||||
| void HidBus::SetEventForSendCommandAsycResult(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::SetEventForSendCommandAsycResult(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
|  | ||||
| @@ -432,7 +432,7 @@ void HidBus::SetEventForSendCommandAsycResult(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| }; | ||||
|  | ||||
| void HidBus::GetSharedMemoryHandle(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::GetSharedMemoryHandle(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_HID, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -440,7 +440,7 @@ void HidBus::GetSharedMemoryHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(&system.Kernel().GetHidBusSharedMem()); | ||||
| } | ||||
|  | ||||
| void HidBus::EnableJoyPollingReceiveMode(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::EnableJoyPollingReceiveMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto t_mem_size{rp.Pop<u32>()}; | ||||
|     const auto t_mem_handle{ctx.GetCopyHandle(0)}; | ||||
| @@ -485,7 +485,7 @@ void HidBus::EnableJoyPollingReceiveMode(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| void HidBus::DisableJoyPollingReceiveMode(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::DisableJoyPollingReceiveMode(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto bus_handle_{rp.PopRaw<BusHandle>()}; | ||||
|  | ||||
| @@ -512,7 +512,7 @@ void HidBus::DisableJoyPollingReceiveMode(Kernel::HLERequestContext& ctx) { | ||||
|     return; | ||||
| } | ||||
|  | ||||
| void HidBus::SetStatusManagerType(Kernel::HLERequestContext& ctx) { | ||||
| void HidBus::SetStatusManagerType(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto manager_type{rp.PopEnum<StatusManagerType>()}; | ||||
|  | ||||
|   | ||||
| @@ -94,19 +94,19 @@ private: | ||||
|         std::unique_ptr<HidbusBase> device{nullptr}; | ||||
|     }; | ||||
|  | ||||
|     void GetBusHandle(Kernel::HLERequestContext& ctx); | ||||
|     void IsExternalDeviceConnected(Kernel::HLERequestContext& ctx); | ||||
|     void Initialize(Kernel::HLERequestContext& ctx); | ||||
|     void Finalize(Kernel::HLERequestContext& ctx); | ||||
|     void EnableExternalDevice(Kernel::HLERequestContext& ctx); | ||||
|     void GetExternalDeviceId(Kernel::HLERequestContext& ctx); | ||||
|     void SendCommandAsync(Kernel::HLERequestContext& ctx); | ||||
|     void GetSendCommandAsynceResult(Kernel::HLERequestContext& ctx); | ||||
|     void SetEventForSendCommandAsycResult(Kernel::HLERequestContext& ctx); | ||||
|     void GetSharedMemoryHandle(Kernel::HLERequestContext& ctx); | ||||
|     void EnableJoyPollingReceiveMode(Kernel::HLERequestContext& ctx); | ||||
|     void DisableJoyPollingReceiveMode(Kernel::HLERequestContext& ctx); | ||||
|     void SetStatusManagerType(Kernel::HLERequestContext& ctx); | ||||
|     void GetBusHandle(HLERequestContext& ctx); | ||||
|     void IsExternalDeviceConnected(HLERequestContext& ctx); | ||||
|     void Initialize(HLERequestContext& ctx); | ||||
|     void Finalize(HLERequestContext& ctx); | ||||
|     void EnableExternalDevice(HLERequestContext& ctx); | ||||
|     void GetExternalDeviceId(HLERequestContext& ctx); | ||||
|     void SendCommandAsync(HLERequestContext& ctx); | ||||
|     void GetSendCommandAsynceResult(HLERequestContext& ctx); | ||||
|     void SetEventForSendCommandAsycResult(HLERequestContext& ctx); | ||||
|     void GetSharedMemoryHandle(HLERequestContext& ctx); | ||||
|     void EnableJoyPollingReceiveMode(HLERequestContext& ctx); | ||||
|     void DisableJoyPollingReceiveMode(HLERequestContext& ctx); | ||||
|     void SetStatusManagerType(HLERequestContext& ctx); | ||||
|  | ||||
|     void UpdateHidbus(std::uintptr_t user_data, std::chrono::nanoseconds ns_late); | ||||
|     std::optional<std::size_t> GetDeviceIndexFromHandle(BusHandle handle) const; | ||||
|   | ||||
| @@ -8,7 +8,6 @@ | ||||
| #include "core/core_timing.h" | ||||
| #include "core/hid/emulated_controller.h" | ||||
| #include "core/hid/hid_core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_shared_memory.h" | ||||
| #include "core/hle/kernel/k_transfer_memory.h" | ||||
| #include "core/hle/kernel/kernel.h" | ||||
| @@ -20,6 +19,7 @@ | ||||
| #include "core/hle/service/hid/irsensor/moment_processor.h" | ||||
| #include "core/hle/service/hid/irsensor/pointing_processor.h" | ||||
| #include "core/hle/service/hid/irsensor/tera_plugin_processor.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/memory.h" | ||||
|  | ||||
| namespace Service::IRS { | ||||
| @@ -56,7 +56,7 @@ IRS::IRS(Core::System& system_) : ServiceFramework{system_, "irs"} { | ||||
| } | ||||
| IRS::~IRS() = default; | ||||
|  | ||||
| void IRS::ActivateIrsensor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::ActivateIrsensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -67,7 +67,7 @@ void IRS::ActivateIrsensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IRS::DeactivateIrsensor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::DeactivateIrsensor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -78,7 +78,7 @@ void IRS::DeactivateIrsensor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IRS::GetIrsensorSharedMemoryHandle(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::GetIrsensorSharedMemoryHandle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|  | ||||
| @@ -89,7 +89,7 @@ void IRS::GetIrsensorSharedMemoryHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(&system.Kernel().GetIrsSharedMem()); | ||||
| } | ||||
|  | ||||
| void IRS::StopImageProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::StopImageProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -117,7 +117,7 @@ void IRS::StopImageProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::RunMomentProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::RunMomentProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -149,7 +149,7 @@ void IRS::RunMomentProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::RunClusteringProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::RunClusteringProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -182,7 +182,7 @@ void IRS::RunClusteringProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::RunImageTransferProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::RunImageTransferProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -231,7 +231,7 @@ void IRS::RunImageTransferProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::GetImageTransferProcessorState(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::GetImageTransferProcessorState(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -272,7 +272,7 @@ void IRS::GetImageTransferProcessorState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(state); | ||||
| } | ||||
|  | ||||
| void IRS::RunTeraPluginProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::RunTeraPluginProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -308,7 +308,7 @@ void IRS::RunTeraPluginProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::GetNpadIrCameraHandle(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::GetNpadIrCameraHandle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto npad_id{rp.PopEnum<Core::HID::NpadIdType>()}; | ||||
|  | ||||
| @@ -332,7 +332,7 @@ void IRS::GetNpadIrCameraHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(camera_handle); | ||||
| } | ||||
|  | ||||
| void IRS::RunPointingProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::RunPointingProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto camera_handle{rp.PopRaw<Core::IrSensor::IrCameraHandle>()}; | ||||
|     const auto processor_config{rp.PopRaw<Core::IrSensor::PackedPointingProcessorConfig>()}; | ||||
| @@ -359,7 +359,7 @@ void IRS::RunPointingProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::SuspendImageProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::SuspendImageProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -385,7 +385,7 @@ void IRS::SuspendImageProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::CheckFirmwareVersion(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::CheckFirmwareVersion(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto camera_handle{rp.PopRaw<Core::IrSensor::IrCameraHandle>()}; | ||||
|     const auto mcu_version{rp.PopRaw<Core::IrSensor::PackedMcuVersion>()}; | ||||
| @@ -407,7 +407,7 @@ void IRS::CheckFirmwareVersion(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::SetFunctionLevel(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::SetFunctionLevel(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto camera_handle{rp.PopRaw<Core::IrSensor::IrCameraHandle>()}; | ||||
|     const auto function_level{rp.PopRaw<Core::IrSensor::PackedFunctionLevel>()}; | ||||
| @@ -429,7 +429,7 @@ void IRS::SetFunctionLevel(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::RunImageTransferExProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::RunImageTransferExProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -469,7 +469,7 @@ void IRS::RunImageTransferExProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::RunIrLedProcessor(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::RunIrLedProcessor(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto camera_handle{rp.PopRaw<Core::IrSensor::IrCameraHandle>()}; | ||||
|     const auto processor_config{rp.PopRaw<Core::IrSensor::PackedIrLedProcessorConfig>()}; | ||||
| @@ -497,7 +497,7 @@ void IRS::RunIrLedProcessor(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::StopImageProcessorAsync(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::StopImageProcessorAsync(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::IrCameraHandle camera_handle; | ||||
| @@ -525,7 +525,7 @@ void IRS::StopImageProcessorAsync(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IRS::ActivateIrsensorWithFunctionLevel(Kernel::HLERequestContext& ctx) { | ||||
| void IRS::ActivateIrsensorWithFunctionLevel(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     struct Parameters { | ||||
|         Core::IrSensor::PackedFunctionLevel function_level; | ||||
|   | ||||
| @@ -38,24 +38,24 @@ private: | ||||
|     }; | ||||
|     static_assert(sizeof(StatusManager) == 0x8000, "StatusManager is an invalid size"); | ||||
|  | ||||
|     void ActivateIrsensor(Kernel::HLERequestContext& ctx); | ||||
|     void DeactivateIrsensor(Kernel::HLERequestContext& ctx); | ||||
|     void GetIrsensorSharedMemoryHandle(Kernel::HLERequestContext& ctx); | ||||
|     void StopImageProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void RunMomentProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void RunClusteringProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void RunImageTransferProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void GetImageTransferProcessorState(Kernel::HLERequestContext& ctx); | ||||
|     void RunTeraPluginProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadIrCameraHandle(Kernel::HLERequestContext& ctx); | ||||
|     void RunPointingProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void SuspendImageProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void CheckFirmwareVersion(Kernel::HLERequestContext& ctx); | ||||
|     void SetFunctionLevel(Kernel::HLERequestContext& ctx); | ||||
|     void RunImageTransferExProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void RunIrLedProcessor(Kernel::HLERequestContext& ctx); | ||||
|     void StopImageProcessorAsync(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateIrsensorWithFunctionLevel(Kernel::HLERequestContext& ctx); | ||||
|     void ActivateIrsensor(HLERequestContext& ctx); | ||||
|     void DeactivateIrsensor(HLERequestContext& ctx); | ||||
|     void GetIrsensorSharedMemoryHandle(HLERequestContext& ctx); | ||||
|     void StopImageProcessor(HLERequestContext& ctx); | ||||
|     void RunMomentProcessor(HLERequestContext& ctx); | ||||
|     void RunClusteringProcessor(HLERequestContext& ctx); | ||||
|     void RunImageTransferProcessor(HLERequestContext& ctx); | ||||
|     void GetImageTransferProcessorState(HLERequestContext& ctx); | ||||
|     void RunTeraPluginProcessor(HLERequestContext& ctx); | ||||
|     void GetNpadIrCameraHandle(HLERequestContext& ctx); | ||||
|     void RunPointingProcessor(HLERequestContext& ctx); | ||||
|     void SuspendImageProcessor(HLERequestContext& ctx); | ||||
|     void CheckFirmwareVersion(HLERequestContext& ctx); | ||||
|     void SetFunctionLevel(HLERequestContext& ctx); | ||||
|     void RunImageTransferExProcessor(HLERequestContext& ctx); | ||||
|     void RunIrLedProcessor(HLERequestContext& ctx); | ||||
|     void StopImageProcessorAsync(HLERequestContext& ctx); | ||||
|     void ActivateIrsensorWithFunctionLevel(HLERequestContext& ctx); | ||||
|  | ||||
|     Result IsIrCameraHandleValid(const Core::IrSensor::IrCameraHandle& camera_handle) const; | ||||
|     Core::IrSensor::DeviceFormat& GetIrCameraSharedMemoryDeviceEntry( | ||||
|   | ||||
| @@ -12,8 +12,6 @@ | ||||
| #include "common/common_types.h" | ||||
| #include "common/logging/log.h" | ||||
| #include "common/scratch_buffer.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/kernel/k_auto_object.h" | ||||
| #include "core/hle/kernel/k_handle_table.h" | ||||
| #include "core/hle/kernel/k_process.h" | ||||
| @@ -21,17 +19,19 @@ | ||||
| #include "core/hle/kernel/k_server_session.h" | ||||
| #include "core/hle/kernel/k_thread.h" | ||||
| #include "core/hle/kernel/kernel.h" | ||||
| #include "core/hle/service/hle_ipc.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/memory.h" | ||||
| 
 | ||||
| namespace Kernel { | ||||
| namespace Service { | ||||
| 
 | ||||
| SessionRequestHandler::SessionRequestHandler(KernelCore& kernel_, const char* service_name_) | ||||
| SessionRequestHandler::SessionRequestHandler(Kernel::KernelCore& kernel_, const char* service_name_) | ||||
|     : kernel{kernel_} {} | ||||
| 
 | ||||
| SessionRequestHandler::~SessionRequestHandler() = default; | ||||
| 
 | ||||
| SessionRequestManager::SessionRequestManager(KernelCore& kernel_, | ||||
|                                              Service::ServerManager& server_manager_) | ||||
| SessionRequestManager::SessionRequestManager(Kernel::KernelCore& kernel_, | ||||
|                                              ServerManager& server_manager_) | ||||
|     : kernel{kernel_}, server_manager{server_manager_} {} | ||||
| 
 | ||||
| SessionRequestManager::~SessionRequestManager() = default; | ||||
| @@ -51,7 +51,7 @@ bool SessionRequestManager::HasSessionRequestHandler(const HLERequestContext& co | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| Result SessionRequestManager::CompleteSyncRequest(KServerSession* server_session, | ||||
| Result SessionRequestManager::CompleteSyncRequest(Kernel::KServerSession* server_session, | ||||
|                                                   HLERequestContext& context) { | ||||
|     Result result = ResultSuccess; | ||||
| 
 | ||||
| @@ -79,7 +79,7 @@ Result SessionRequestManager::CompleteSyncRequest(KServerSession* server_session | ||||
|     return result; | ||||
| } | ||||
| 
 | ||||
| Result SessionRequestManager::HandleDomainSyncRequest(KServerSession* server_session, | ||||
| Result SessionRequestManager::HandleDomainSyncRequest(Kernel::KServerSession* server_session, | ||||
|                                                       HLERequestContext& context) { | ||||
|     if (!context.HasDomainMessageHeader()) { | ||||
|         return ResultSuccess; | ||||
| @@ -124,16 +124,17 @@ Result SessionRequestManager::HandleDomainSyncRequest(KServerSession* server_ses | ||||
|     return ResultSuccess; | ||||
| } | ||||
| 
 | ||||
| HLERequestContext::HLERequestContext(KernelCore& kernel_, Core::Memory::Memory& memory_, | ||||
|                                      KServerSession* server_session_, KThread* thread_) | ||||
| HLERequestContext::HLERequestContext(Kernel::KernelCore& kernel_, Core::Memory::Memory& memory_, | ||||
|                                      Kernel::KServerSession* server_session_, | ||||
|                                      Kernel::KThread* thread_) | ||||
|     : server_session(server_session_), thread(thread_), kernel{kernel_}, memory{memory_} { | ||||
|     cmd_buf[0] = 0; | ||||
| } | ||||
| 
 | ||||
| HLERequestContext::~HLERequestContext() = default; | ||||
| 
 | ||||
| void HLERequestContext::ParseCommandBuffer(const KHandleTable& handle_table, u32_le* src_cmdbuf, | ||||
|                                            bool incoming) { | ||||
| void HLERequestContext::ParseCommandBuffer(const Kernel::KHandleTable& handle_table, | ||||
|                                            u32_le* src_cmdbuf, bool incoming) { | ||||
|     IPC::RequestParser rp(src_cmdbuf); | ||||
|     command_header = rp.PopRaw<IPC::CommandHeader>(); | ||||
| 
 | ||||
| @@ -253,8 +254,8 @@ void HLERequestContext::ParseCommandBuffer(const KHandleTable& handle_table, u32 | ||||
|     rp.Skip(1, false); // The command is actually an u64, but we don't use the high part.
 | ||||
| } | ||||
| 
 | ||||
| Result HLERequestContext::PopulateFromIncomingCommandBuffer(const KHandleTable& handle_table, | ||||
|                                                             u32_le* src_cmdbuf) { | ||||
| Result HLERequestContext::PopulateFromIncomingCommandBuffer( | ||||
|     const Kernel::KHandleTable& handle_table, u32_le* src_cmdbuf) { | ||||
|     ParseCommandBuffer(handle_table, src_cmdbuf, true); | ||||
| 
 | ||||
|     if (command_header->IsCloseCommand()) { | ||||
| @@ -267,7 +268,7 @@ Result HLERequestContext::PopulateFromIncomingCommandBuffer(const KHandleTable& | ||||
|     return ResultSuccess; | ||||
| } | ||||
| 
 | ||||
| Result HLERequestContext::WriteToOutgoingCommandBuffer(KThread& requesting_thread) { | ||||
| Result HLERequestContext::WriteToOutgoingCommandBuffer(Kernel::KThread& requesting_thread) { | ||||
|     auto current_offset = handles_offset; | ||||
|     auto& owner_process = *requesting_thread.GetOwnerProcess(); | ||||
|     auto& handle_table = owner_process.GetHandleTable(); | ||||
| @@ -528,4 +529,4 @@ std::string HLERequestContext::Description() const { | ||||
|     return s.str(); | ||||
| } | ||||
| 
 | ||||
| } // namespace Kernel
 | ||||
| } // namespace Service
 | ||||
| @@ -35,20 +35,18 @@ class ServerManager; | ||||
| } // namespace Service
 | ||||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| class Domain; | ||||
| class HLERequestContext; | ||||
| class KAutoObject; | ||||
| class KernelCore; | ||||
| class KEvent; | ||||
| class KHandleTable; | ||||
| class KServerPort; | ||||
| class KProcess; | ||||
| class KServerSession; | ||||
| class KThread; | ||||
| class KReadableEvent; | ||||
| class KSession; | ||||
| class SessionRequestManager; | ||||
| } // namespace Kernel
 | ||||
| 
 | ||||
| namespace Service { | ||||
| 
 | ||||
| using Handle = Kernel::Handle; | ||||
| 
 | ||||
| class HLERequestContext; | ||||
| 
 | ||||
| /**
 | ||||
|  * Interface implemented by HLE Session handlers. | ||||
| @@ -57,7 +55,7 @@ class SessionRequestManager; | ||||
|  */ | ||||
| class SessionRequestHandler : public std::enable_shared_from_this<SessionRequestHandler> { | ||||
| public: | ||||
|     SessionRequestHandler(KernelCore& kernel_, const char* service_name_); | ||||
|     SessionRequestHandler(Kernel::KernelCore& kernel_, const char* service_name_); | ||||
|     virtual ~SessionRequestHandler(); | ||||
| 
 | ||||
|     /**
 | ||||
| @@ -69,10 +67,10 @@ public: | ||||
|      * @returns Result the result code of the translate operation. | ||||
|      */ | ||||
|     virtual Result HandleSyncRequest(Kernel::KServerSession& session, | ||||
|                                      Kernel::HLERequestContext& context) = 0; | ||||
|                                      HLERequestContext& context) = 0; | ||||
| 
 | ||||
| protected: | ||||
|     KernelCore& kernel; | ||||
|     Kernel::KernelCore& kernel; | ||||
| }; | ||||
| 
 | ||||
| using SessionRequestHandlerWeakPtr = std::weak_ptr<SessionRequestHandler>; | ||||
| @@ -85,7 +83,8 @@ using SessionRequestHandlerPtr = std::shared_ptr<SessionRequestHandler>; | ||||
|  */ | ||||
| class SessionRequestManager final { | ||||
| public: | ||||
|     explicit SessionRequestManager(KernelCore& kernel, Service::ServerManager& server_manager); | ||||
|     explicit SessionRequestManager(Kernel::KernelCore& kernel, | ||||
|                                    Service::ServerManager& server_manager); | ||||
|     ~SessionRequestManager(); | ||||
| 
 | ||||
|     bool IsDomain() const { | ||||
| @@ -140,8 +139,9 @@ public: | ||||
| 
 | ||||
|     bool HasSessionRequestHandler(const HLERequestContext& context) const; | ||||
| 
 | ||||
|     Result HandleDomainSyncRequest(KServerSession* server_session, HLERequestContext& context); | ||||
|     Result CompleteSyncRequest(KServerSession* server_session, HLERequestContext& context); | ||||
|     Result HandleDomainSyncRequest(Kernel::KServerSession* server_session, | ||||
|                                    HLERequestContext& context); | ||||
|     Result CompleteSyncRequest(Kernel::KServerSession* server_session, HLERequestContext& context); | ||||
| 
 | ||||
|     Service::ServerManager& GetServerManager() { | ||||
|         return server_manager; | ||||
| @@ -166,33 +166,18 @@ private: | ||||
|     std::vector<SessionRequestHandlerPtr> domain_handlers; | ||||
| 
 | ||||
| private: | ||||
|     KernelCore& kernel; | ||||
|     Kernel::KernelCore& kernel; | ||||
|     Service::ServerManager& server_manager; | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  * Class containing information about an in-flight IPC request being handled by an HLE service | ||||
|  * implementation. Services should avoid using old global APIs (e.g. Kernel::GetCommandBuffer()) and | ||||
|  * when possible use the APIs in this class to service the request. | ||||
|  * | ||||
|  * HLE handle protocol | ||||
|  * =================== | ||||
|  * | ||||
|  * To avoid needing HLE services to keep a separate handle table, or having to directly modify the | ||||
|  * requester's table, a tweaked protocol is used to receive and send handles in requests. The kernel | ||||
|  * will decode the incoming handles into object pointers and insert a id in the buffer where the | ||||
|  * handle would normally be. The service then calls GetIncomingHandle() with that id to get the | ||||
|  * pointer to the object. Similarly, instead of inserting a handle into the command buffer, the | ||||
|  * service calls AddOutgoingHandle() and stores the returned id where the handle would normally go. | ||||
|  * | ||||
|  * The end result is similar to just giving services their own real handle tables, but since these | ||||
|  * ids are local to a specific context, it avoids requiring services to manage handles for objects | ||||
|  * across multiple calls and ensuring that unneeded handles are cleaned up. | ||||
|  * implementation. | ||||
|  */ | ||||
| class HLERequestContext { | ||||
| public: | ||||
|     explicit HLERequestContext(KernelCore& kernel, Core::Memory::Memory& memory, | ||||
|                                KServerSession* session, KThread* thread); | ||||
|     explicit HLERequestContext(Kernel::KernelCore& kernel, Core::Memory::Memory& memory, | ||||
|                                Kernel::KServerSession* session, Kernel::KThread* thread); | ||||
|     ~HLERequestContext(); | ||||
| 
 | ||||
|     /// Returns a pointer to the IPC command buffer for this request.
 | ||||
| @@ -209,10 +194,11 @@ public: | ||||
|     } | ||||
| 
 | ||||
|     /// Populates this context with data from the requesting process/thread.
 | ||||
|     Result PopulateFromIncomingCommandBuffer(const KHandleTable& handle_table, u32_le* src_cmdbuf); | ||||
|     Result PopulateFromIncomingCommandBuffer(const Kernel::KHandleTable& handle_table, | ||||
|                                              u32_le* src_cmdbuf); | ||||
| 
 | ||||
|     /// Writes data from this context back to the requesting process/thread.
 | ||||
|     Result WriteToOutgoingCommandBuffer(KThread& requesting_thread); | ||||
|     Result WriteToOutgoingCommandBuffer(Kernel::KThread& requesting_thread); | ||||
| 
 | ||||
|     [[nodiscard]] u32_le GetHipcCommand() const { | ||||
|         return command; | ||||
| @@ -339,11 +325,11 @@ public: | ||||
|         return incoming_move_handles.at(index); | ||||
|     } | ||||
| 
 | ||||
|     void AddMoveObject(KAutoObject* object) { | ||||
|     void AddMoveObject(Kernel::KAutoObject* object) { | ||||
|         outgoing_move_objects.emplace_back(object); | ||||
|     } | ||||
| 
 | ||||
|     void AddCopyObject(KAutoObject* object) { | ||||
|     void AddCopyObject(Kernel::KAutoObject* object) { | ||||
|         outgoing_copy_objects.emplace_back(object); | ||||
|     } | ||||
| 
 | ||||
| @@ -362,7 +348,7 @@ public: | ||||
| 
 | ||||
|     [[nodiscard]] std::string Description() const; | ||||
| 
 | ||||
|     [[nodiscard]] KThread& GetThread() { | ||||
|     [[nodiscard]] Kernel::KThread& GetThread() { | ||||
|         return *thread; | ||||
|     } | ||||
| 
 | ||||
| @@ -381,17 +367,18 @@ public: | ||||
| private: | ||||
|     friend class IPC::ResponseBuilder; | ||||
| 
 | ||||
|     void ParseCommandBuffer(const KHandleTable& handle_table, u32_le* src_cmdbuf, bool incoming); | ||||
|     void ParseCommandBuffer(const Kernel::KHandleTable& handle_table, u32_le* src_cmdbuf, | ||||
|                             bool incoming); | ||||
| 
 | ||||
|     std::array<u32, IPC::COMMAND_BUFFER_LENGTH> cmd_buf; | ||||
|     Kernel::KServerSession* server_session{}; | ||||
|     KThread* thread; | ||||
|     Kernel::KThread* thread; | ||||
| 
 | ||||
|     std::vector<Handle> incoming_move_handles; | ||||
|     std::vector<Handle> incoming_copy_handles; | ||||
| 
 | ||||
|     std::vector<KAutoObject*> outgoing_move_objects; | ||||
|     std::vector<KAutoObject*> outgoing_copy_objects; | ||||
|     std::vector<Kernel::KAutoObject*> outgoing_move_objects; | ||||
|     std::vector<Kernel::KAutoObject*> outgoing_copy_objects; | ||||
|     std::vector<SessionRequestHandlerPtr> outgoing_domain_objects; | ||||
| 
 | ||||
|     std::optional<IPC::CommandHeader> command_header; | ||||
| @@ -414,8 +401,8 @@ private: | ||||
|     std::weak_ptr<SessionRequestManager> manager{}; | ||||
|     bool is_deferred{false}; | ||||
| 
 | ||||
|     KernelCore& kernel; | ||||
|     Kernel::KernelCore& kernel; | ||||
|     Core::Memory::Memory& memory; | ||||
| }; | ||||
| 
 | ||||
| } // namespace Kernel
 | ||||
| } // namespace Service
 | ||||
| @@ -10,11 +10,11 @@ | ||||
| #include "common/assert.h" | ||||
| #include "common/common_types.h" | ||||
| #include "core/hle/ipc.h" | ||||
| #include "core/hle/kernel/hle_ipc.h" | ||||
| #include "core/hle/kernel/k_process.h" | ||||
| #include "core/hle/kernel/k_resource_limit.h" | ||||
| #include "core/hle/kernel/k_session.h" | ||||
| #include "core/hle/result.h" | ||||
| #include "core/hle/service/hle_ipc.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| 
 | ||||
| namespace IPC { | ||||
| @@ -23,14 +23,14 @@ constexpr Result ERR_REMOTE_PROCESS_DEAD{ErrorModule::HIPC, 301}; | ||||
| 
 | ||||
| class RequestHelperBase { | ||||
| protected: | ||||
|     Kernel::HLERequestContext* context = nullptr; | ||||
|     Service::HLERequestContext* context = nullptr; | ||||
|     u32* cmdbuf; | ||||
|     u32 index = 0; | ||||
| 
 | ||||
| public: | ||||
|     explicit RequestHelperBase(u32* command_buffer) : cmdbuf(command_buffer) {} | ||||
| 
 | ||||
|     explicit RequestHelperBase(Kernel::HLERequestContext& ctx) | ||||
|     explicit RequestHelperBase(Service::HLERequestContext& ctx) | ||||
|         : context(&ctx), cmdbuf(ctx.CommandBuffer()) {} | ||||
| 
 | ||||
|     void Skip(u32 size_in_words, bool set_to_null) { | ||||
| @@ -68,7 +68,7 @@ public: | ||||
|         AlwaysMoveHandles = 1, | ||||
|     }; | ||||
| 
 | ||||
|     explicit ResponseBuilder(Kernel::HLERequestContext& ctx, u32 normal_params_size_, | ||||
|     explicit ResponseBuilder(Service::HLERequestContext& ctx, u32 normal_params_size_, | ||||
|                              u32 num_handles_to_copy_ = 0, u32 num_objects_to_move_ = 0, | ||||
|                              Flags flags = Flags::None) | ||||
|         : RequestHelperBase(ctx), normal_params_size(normal_params_size_), | ||||
| @@ -157,7 +157,7 @@ public: | ||||
|             auto* session = Kernel::KSession::Create(kernel); | ||||
|             session->Initialize(nullptr, iface->GetServiceName()); | ||||
| 
 | ||||
|             auto next_manager = std::make_shared<Kernel::SessionRequestManager>( | ||||
|             auto next_manager = std::make_shared<Service::SessionRequestManager>( | ||||
|                 kernel, manager->GetServerManager()); | ||||
|             next_manager->SetSessionHandler(iface); | ||||
|             manager->GetServerManager().RegisterSession(&session->GetServerSession(), next_manager); | ||||
| @@ -347,7 +347,7 @@ class RequestParser : public RequestHelperBase { | ||||
| public: | ||||
|     explicit RequestParser(u32* command_buffer) : RequestHelperBase(command_buffer) {} | ||||
| 
 | ||||
|     explicit RequestParser(Kernel::HLERequestContext& ctx) : RequestHelperBase(ctx) { | ||||
|     explicit RequestParser(Service::HLERequestContext& ctx) : RequestHelperBase(ctx) { | ||||
|         // TIPC does not have data payload offset
 | ||||
|         if (!ctx.IsTipc()) { | ||||
|             ASSERT_MSG(ctx.GetDataPayloadOffset(), "context is incomplete"); | ||||
| @@ -3,10 +3,10 @@ | ||||
|  | ||||
| #include "core/arm/symbols.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_code_memory.h" | ||||
| #include "core/hle/kernel/k_transfer_memory.h" | ||||
| #include "core/hle/result.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/jit/jit.h" | ||||
| #include "core/hle/service/jit/jit_context.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| @@ -44,7 +44,7 @@ public: | ||||
|         configuration.sys_rx_memory = user_rx; | ||||
|     } | ||||
|  | ||||
|     void GenerateCode(Kernel::HLERequestContext& ctx) { | ||||
|     void GenerateCode(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_JIT, "called"); | ||||
|  | ||||
|         struct InputParameters { | ||||
| @@ -126,7 +126,7 @@ public: | ||||
|         } | ||||
|     }; | ||||
|  | ||||
|     void Control(Kernel::HLERequestContext& ctx) { | ||||
|     void Control(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_JIT, "called"); | ||||
|  | ||||
|         IPC::RequestParser rp{ctx}; | ||||
| @@ -171,7 +171,7 @@ public: | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void LoadPlugin(Kernel::HLERequestContext& ctx) { | ||||
|     void LoadPlugin(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_JIT, "called"); | ||||
|  | ||||
|         IPC::RequestParser rp{ctx}; | ||||
| @@ -277,7 +277,7 @@ public: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetCodeAddress(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCodeAddress(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_JIT, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 6}; | ||||
| @@ -333,7 +333,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void CreateJitEnvironment(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateJitEnvironment(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_JIT, "called"); | ||||
|  | ||||
|         struct Parameters { | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| #include <memory> | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/lbl/lbl.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| @@ -60,7 +60,7 @@ private: | ||||
|         On = 1, | ||||
|     }; | ||||
|  | ||||
|     void SetCurrentBrightnessSetting(Kernel::HLERequestContext& ctx) { | ||||
|     void SetCurrentBrightnessSetting(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         auto brightness = rp.Pop<float>(); | ||||
|  | ||||
| @@ -78,7 +78,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetCurrentBrightnessSetting(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCurrentBrightnessSetting(HLERequestContext& ctx) { | ||||
|         auto brightness = current_brightness; | ||||
|         if (!std::isfinite(brightness)) { | ||||
|             LOG_ERROR(Service_LBL, "Brightness is infinite!"); | ||||
| @@ -92,7 +92,7 @@ private: | ||||
|         rb.Push(brightness); | ||||
|     } | ||||
|  | ||||
|     void SwitchBacklightOn(Kernel::HLERequestContext& ctx) { | ||||
|     void SwitchBacklightOn(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto fade_time = rp.Pop<u64_le>(); | ||||
|         LOG_WARNING(Service_LBL, "(STUBBED) called, fade_time={}", fade_time); | ||||
| @@ -103,7 +103,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SwitchBacklightOff(Kernel::HLERequestContext& ctx) { | ||||
|     void SwitchBacklightOff(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto fade_time = rp.Pop<u64_le>(); | ||||
|         LOG_WARNING(Service_LBL, "(STUBBED) called, fade_time={}", fade_time); | ||||
| @@ -114,7 +114,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetBacklightSwitchStatus(Kernel::HLERequestContext& ctx) { | ||||
|     void GetBacklightSwitchStatus(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -123,7 +123,7 @@ private: | ||||
|                                                              : BacklightSwitchStatus::Off); | ||||
|     } | ||||
|  | ||||
|     void EnableDimming(Kernel::HLERequestContext& ctx) { | ||||
|     void EnableDimming(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         dimming = true; | ||||
| @@ -132,7 +132,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void DisableDimming(Kernel::HLERequestContext& ctx) { | ||||
|     void DisableDimming(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         dimming = false; | ||||
| @@ -141,7 +141,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void IsDimmingEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     void IsDimmingEnabled(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -149,7 +149,7 @@ private: | ||||
|         rb.Push(dimming); | ||||
|     } | ||||
|  | ||||
|     void EnableAutoBrightnessControl(Kernel::HLERequestContext& ctx) { | ||||
|     void EnableAutoBrightnessControl(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|         auto_brightness = true; | ||||
|         update_instantly = true; | ||||
| @@ -158,7 +158,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void DisableAutoBrightnessControl(Kernel::HLERequestContext& ctx) { | ||||
|     void DisableAutoBrightnessControl(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|         auto_brightness = false; | ||||
|  | ||||
| @@ -166,7 +166,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void IsAutoBrightnessControlEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     void IsAutoBrightnessControlEnabled(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -174,7 +174,7 @@ private: | ||||
|         rb.Push(auto_brightness); | ||||
|     } | ||||
|  | ||||
|     void SetAmbientLightSensorValue(Kernel::HLERequestContext& ctx) { | ||||
|     void SetAmbientLightSensorValue(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto light_value = rp.Pop<float>(); | ||||
|  | ||||
| @@ -186,7 +186,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetAmbientLightSensorValue(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAmbientLightSensorValue(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -194,7 +194,7 @@ private: | ||||
|         rb.Push(ambient_light_value); | ||||
|     } | ||||
|  | ||||
|     void SetBrightnessReflectionDelayLevel(Kernel::HLERequestContext& ctx) { | ||||
|     void SetBrightnessReflectionDelayLevel(HLERequestContext& ctx) { | ||||
|         // This is Intentional, this function does absolutely nothing | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
| @@ -202,7 +202,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetBrightnessReflectionDelayLevel(Kernel::HLERequestContext& ctx) { | ||||
|     void GetBrightnessReflectionDelayLevel(HLERequestContext& ctx) { | ||||
|         // This is intentional, the function is hard coded to return 0.0f on hardware | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
| @@ -211,7 +211,7 @@ private: | ||||
|         rb.Push(0.0f); | ||||
|     } | ||||
|  | ||||
|     void SetCurrentBrightnessMapping(Kernel::HLERequestContext& ctx) { | ||||
|     void SetCurrentBrightnessMapping(HLERequestContext& ctx) { | ||||
|         // This is Intentional, this function does absolutely nothing | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
| @@ -219,7 +219,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetCurrentBrightnessMapping(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCurrentBrightnessMapping(HLERequestContext& ctx) { | ||||
|         // This is Intentional, this function does absolutely nothing | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
| @@ -228,7 +228,7 @@ private: | ||||
|         // This function is suppose to return something but it seems like it doesn't | ||||
|     } | ||||
|  | ||||
|     void SetCurrentAmbientLightSensorMapping(Kernel::HLERequestContext& ctx) { | ||||
|     void SetCurrentAmbientLightSensorMapping(HLERequestContext& ctx) { | ||||
|         // This is Intentional, this function does absolutely nothing | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
| @@ -236,7 +236,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetCurrentAmbientLightSensorMapping(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCurrentAmbientLightSensorMapping(HLERequestContext& ctx) { | ||||
|         // This is Intentional, this function does absolutely nothing | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
| @@ -245,7 +245,7 @@ private: | ||||
|         // This function is suppose to return something but it seems like it doesn't | ||||
|     } | ||||
|  | ||||
|     void IsAmbientLightSensorAvailable(Kernel::HLERequestContext& ctx) { | ||||
|     void IsAmbientLightSensorAvailable(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_LBL, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(ResultSuccess); | ||||
| @@ -253,7 +253,7 @@ private: | ||||
|         rb.Push(true); | ||||
|     } | ||||
|  | ||||
|     void SetCurrentBrightnessSettingForVrMode(Kernel::HLERequestContext& ctx) { | ||||
|     void SetCurrentBrightnessSettingForVrMode(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         auto brightness = rp.Pop<float>(); | ||||
|  | ||||
| @@ -270,7 +270,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetCurrentBrightnessSettingForVrMode(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCurrentBrightnessSettingForVrMode(HLERequestContext& ctx) { | ||||
|         auto brightness = current_vr_brightness; | ||||
|         if (!std::isfinite(brightness)) { | ||||
|             LOG_ERROR(Service_LBL, "Brightness is infinite!"); | ||||
| @@ -284,7 +284,7 @@ private: | ||||
|         rb.Push(brightness); | ||||
|     } | ||||
|  | ||||
|     void EnableVrMode(Kernel::HLERequestContext& ctx) { | ||||
|     void EnableVrMode(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -293,7 +293,7 @@ private: | ||||
|         vr_mode_enabled = true; | ||||
|     } | ||||
|  | ||||
|     void DisableVrMode(Kernel::HLERequestContext& ctx) { | ||||
|     void DisableVrMode(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -302,7 +302,7 @@ private: | ||||
|         vr_mode_enabled = false; | ||||
|     } | ||||
|  | ||||
|     void IsVrModeEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     void IsVrModeEnabled(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LBL, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|   | ||||
| @@ -50,7 +50,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void CreateMonitorService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateMonitorService(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -169,7 +169,7 @@ public: | ||||
|         state_change_event->Signal(); | ||||
|     } | ||||
|  | ||||
|     void GetState(Kernel::HLERequestContext& ctx) { | ||||
|     void GetState(HLERequestContext& ctx) { | ||||
|         State state = State::Error; | ||||
|  | ||||
|         if (is_initialized) { | ||||
| @@ -181,7 +181,7 @@ public: | ||||
|         rb.PushEnum(state); | ||||
|     } | ||||
|  | ||||
|     void GetNetworkInfo(Kernel::HLERequestContext& ctx) { | ||||
|     void GetNetworkInfo(HLERequestContext& ctx) { | ||||
|         const auto write_buffer_size = ctx.GetWriteBufferSize(); | ||||
|  | ||||
|         if (write_buffer_size != sizeof(NetworkInfo)) { | ||||
| @@ -205,7 +205,7 @@ public: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetIpv4Address(Kernel::HLERequestContext& ctx) { | ||||
|     void GetIpv4Address(HLERequestContext& ctx) { | ||||
|         const auto network_interface = Network::GetSelectedNetworkInterface(); | ||||
|  | ||||
|         if (!network_interface) { | ||||
| @@ -234,13 +234,13 @@ public: | ||||
|         rb.PushRaw(subnet_mask); | ||||
|     } | ||||
|  | ||||
|     void GetDisconnectReason(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDisconnectReason(HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(ResultSuccess); | ||||
|         rb.PushEnum(lan_discovery.GetDisconnectReason()); | ||||
|     } | ||||
|  | ||||
|     void GetSecurityParameter(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSecurityParameter(HLERequestContext& ctx) { | ||||
|         SecurityParameter security_parameter{}; | ||||
|         NetworkInfo info{}; | ||||
|         const Result rc = lan_discovery.GetNetworkInfo(info); | ||||
| @@ -261,7 +261,7 @@ public: | ||||
|         rb.PushRaw<SecurityParameter>(security_parameter); | ||||
|     } | ||||
|  | ||||
|     void GetNetworkConfig(Kernel::HLERequestContext& ctx) { | ||||
|     void GetNetworkConfig(HLERequestContext& ctx) { | ||||
|         NetworkConfig config{}; | ||||
|         NetworkInfo info{}; | ||||
|         const Result rc = lan_discovery.GetNetworkInfo(info); | ||||
| @@ -283,7 +283,7 @@ public: | ||||
|         rb.PushRaw<NetworkConfig>(config); | ||||
|     } | ||||
|  | ||||
|     void AttachStateChangeEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void AttachStateChangeEvent(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -291,7 +291,7 @@ public: | ||||
|         rb.PushCopyObjects(state_change_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void GetNetworkInfoLatestUpdate(Kernel::HLERequestContext& ctx) { | ||||
|     void GetNetworkInfoLatestUpdate(HLERequestContext& ctx) { | ||||
|         const std::size_t network_buffer_size = ctx.GetWriteBufferSize(0); | ||||
|         const std::size_t node_buffer_count = ctx.GetWriteBufferNumElements<NodeLatestUpdate>(1); | ||||
|  | ||||
| @@ -321,15 +321,15 @@ public: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Scan(Kernel::HLERequestContext& ctx) { | ||||
|     void Scan(HLERequestContext& ctx) { | ||||
|         ScanImpl(ctx); | ||||
|     } | ||||
|  | ||||
|     void ScanPrivate(Kernel::HLERequestContext& ctx) { | ||||
|     void ScanPrivate(HLERequestContext& ctx) { | ||||
|         ScanImpl(ctx, true); | ||||
|     } | ||||
|  | ||||
|     void ScanImpl(Kernel::HLERequestContext& ctx, bool is_private = false) { | ||||
|     void ScanImpl(HLERequestContext& ctx, bool is_private = false) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto channel{rp.PopEnum<WifiChannel>()}; | ||||
|         const auto scan_filter{rp.PopRaw<ScanFilter>()}; | ||||
| @@ -358,40 +358,40 @@ public: | ||||
|         rb.Push<u32>(count); | ||||
|     } | ||||
|  | ||||
|     void SetWirelessControllerRestriction(Kernel::HLERequestContext& ctx) { | ||||
|     void SetWirelessControllerRestriction(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_LDN, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void OpenAccessPoint(Kernel::HLERequestContext& ctx) { | ||||
|     void OpenAccessPoint(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(lan_discovery.OpenAccessPoint()); | ||||
|     } | ||||
|  | ||||
|     void CloseAccessPoint(Kernel::HLERequestContext& ctx) { | ||||
|     void CloseAccessPoint(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(lan_discovery.CloseAccessPoint()); | ||||
|     } | ||||
|  | ||||
|     void CreateNetwork(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateNetwork(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         CreateNetworkImpl(ctx); | ||||
|     } | ||||
|  | ||||
|     void CreateNetworkPrivate(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateNetworkPrivate(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         CreateNetworkImpl(ctx, true); | ||||
|     } | ||||
|  | ||||
|     void CreateNetworkImpl(Kernel::HLERequestContext& ctx, bool is_private = false) { | ||||
|     void CreateNetworkImpl(HLERequestContext& ctx, bool is_private = false) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto security_config{rp.PopRaw<SecurityConfig>()}; | ||||
| @@ -405,49 +405,49 @@ public: | ||||
|         rb.Push(lan_discovery.CreateNetwork(security_config, user_config, network_Config)); | ||||
|     } | ||||
|  | ||||
|     void DestroyNetwork(Kernel::HLERequestContext& ctx) { | ||||
|     void DestroyNetwork(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(lan_discovery.DestroyNetwork()); | ||||
|     } | ||||
|  | ||||
|     void SetAdvertiseData(Kernel::HLERequestContext& ctx) { | ||||
|     void SetAdvertiseData(HLERequestContext& ctx) { | ||||
|         const auto read_buffer = ctx.ReadBuffer(); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(lan_discovery.SetAdvertiseData(read_buffer)); | ||||
|     } | ||||
|  | ||||
|     void SetStationAcceptPolicy(Kernel::HLERequestContext& ctx) { | ||||
|     void SetStationAcceptPolicy(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_LDN, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void AddAcceptFilterEntry(Kernel::HLERequestContext& ctx) { | ||||
|     void AddAcceptFilterEntry(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_LDN, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void OpenStation(Kernel::HLERequestContext& ctx) { | ||||
|     void OpenStation(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(lan_discovery.OpenStation()); | ||||
|     } | ||||
|  | ||||
|     void CloseStation(Kernel::HLERequestContext& ctx) { | ||||
|     void CloseStation(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(lan_discovery.CloseStation()); | ||||
|     } | ||||
|  | ||||
|     void Connect(Kernel::HLERequestContext& ctx) { | ||||
|     void Connect(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         struct Parameters { | ||||
|             SecurityConfig security_config; | ||||
| @@ -481,14 +481,14 @@ public: | ||||
|                                       static_cast<u16>(parameters.local_communication_version))); | ||||
|     } | ||||
|  | ||||
|     void Disconnect(Kernel::HLERequestContext& ctx) { | ||||
|     void Disconnect(HLERequestContext& ctx) { | ||||
|         LOG_INFO(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(lan_discovery.Disconnect()); | ||||
|     } | ||||
|  | ||||
|     void Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     void Initialize(HLERequestContext& ctx) { | ||||
|         const auto rc = InitializeImpl(ctx); | ||||
|         if (rc.IsError()) { | ||||
|             LOG_ERROR(Service_LDN, "Network isn't initialized, rc={}", rc.raw); | ||||
| @@ -498,7 +498,7 @@ public: | ||||
|         rb.Push(rc); | ||||
|     } | ||||
|  | ||||
|     void Finalize(Kernel::HLERequestContext& ctx) { | ||||
|     void Finalize(HLERequestContext& ctx) { | ||||
|         if (auto room_member = room_network.GetRoomMember().lock()) { | ||||
|             room_member->Unbind(ldn_packet_received); | ||||
|         } | ||||
| @@ -509,7 +509,7 @@ public: | ||||
|         rb.Push(lan_discovery.Finalize()); | ||||
|     } | ||||
|  | ||||
|     void Initialize2(Kernel::HLERequestContext& ctx) { | ||||
|     void Initialize2(HLERequestContext& ctx) { | ||||
|         const auto rc = InitializeImpl(ctx); | ||||
|         if (rc.IsError()) { | ||||
|             LOG_ERROR(Service_LDN, "Network isn't initialized, rc={}", rc.raw); | ||||
| @@ -519,7 +519,7 @@ public: | ||||
|         rb.Push(rc); | ||||
|     } | ||||
|  | ||||
|     Result InitializeImpl(Kernel::HLERequestContext& ctx) { | ||||
|     Result InitializeImpl(HLERequestContext& ctx) { | ||||
|         const auto network_interface = Network::GetSelectedNetworkInterface(); | ||||
|         if (!network_interface) { | ||||
|             LOG_ERROR(Service_LDN, "No network interface is set"); | ||||
| @@ -562,7 +562,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void CreateSystemLocalCommunicationService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateSystemLocalCommunicationService(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -583,7 +583,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void CreateUserLocalCommunicationService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateUserLocalCommunicationService(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LDN, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -647,7 +647,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     void Initialize(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_LDN, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -668,7 +668,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void CreateNetworkervice(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateNetworkervice(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const u64 reserved_input = rp.Pop<u64>(); | ||||
|         const u32 input = rp.Pop<u32>(); | ||||
| @@ -681,7 +681,7 @@ public: | ||||
|         rb.PushIpcInterface<INetworkService>(system); | ||||
|     } | ||||
|  | ||||
|     void CreateMonitorService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateMonitorService(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const u64 reserved_input = rp.Pop<u64>(); | ||||
|  | ||||
| @@ -706,7 +706,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void CreateNetworkervice(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateNetworkervice(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const u64 reserved_input = rp.Pop<u64>(); | ||||
|         const u32 input = rp.Pop<u32>(); | ||||
| @@ -719,7 +719,7 @@ public: | ||||
|         rb.PushIpcInterface<INetworkService>(system); | ||||
|     } | ||||
|  | ||||
|     void CreateMonitorService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateMonitorService(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const u64 reserved_input = rp.Pop<u64>(); | ||||
|  | ||||
|   | ||||
| @@ -3,9 +3,9 @@ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/result.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/kernel_helpers.h" | ||||
| #include "core/hle/service/sm/sm.h" | ||||
|  | ||||
|   | ||||
| @@ -9,10 +9,10 @@ | ||||
| #include "common/hex_util.h" | ||||
| #include "common/scope_exit.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_page_table.h" | ||||
| #include "core/hle/kernel/svc_results.h" | ||||
| #include "core/hle/kernel/svc_types.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/ldr/ldr.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| @@ -175,7 +175,7 @@ public: | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
|     void RegisterModuleInfo(Kernel::HLERequestContext& ctx) { | ||||
|     void RegisterModuleInfo(HLERequestContext& ctx) { | ||||
|         struct Parameters { | ||||
|             u64_le process_id; | ||||
|             u64_le nrr_address; | ||||
| @@ -272,7 +272,7 @@ public: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void UnregisterModuleInfo(Kernel::HLERequestContext& ctx) { | ||||
|     void UnregisterModuleInfo(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto pid = rp.Pop<u64>(); | ||||
|         const auto nrr_address = rp.Pop<VAddr>(); | ||||
| @@ -446,7 +446,7 @@ public: | ||||
|             data_start, bss_end_addr - data_start, Kernel::Svc::MemoryPermission::ReadWrite); | ||||
|     } | ||||
|  | ||||
|     void LoadModule(Kernel::HLERequestContext& ctx) { | ||||
|     void LoadModule(HLERequestContext& ctx) { | ||||
|         struct Parameters { | ||||
|             u64_le process_id; | ||||
|             u64_le image_address; | ||||
| @@ -592,7 +592,7 @@ public: | ||||
|         return ResultSuccess; | ||||
|     } | ||||
|  | ||||
|     void UnloadModule(Kernel::HLERequestContext& ctx) { | ||||
|     void UnloadModule(HLERequestContext& ctx) { | ||||
|         if (!initialized) { | ||||
|             LOG_ERROR(Service_LDR, "LDR:RO not initialized before use!"); | ||||
|             IPC::ResponseBuilder rb{ctx, 2}; | ||||
| @@ -638,7 +638,7 @@ public: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     void Initialize(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_LDR, "(STUBBED) called"); | ||||
|  | ||||
|         initialized = true; | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| #include <boost/container_hash/hash.hpp> | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/lm/lm.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| @@ -93,7 +93,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Log(Kernel::HLERequestContext& ctx) { | ||||
|     void Log(HLERequestContext& ctx) { | ||||
|         std::size_t offset{}; | ||||
|         const auto data = ctx.ReadBuffer(); | ||||
|  | ||||
| @@ -148,7 +148,7 @@ private: | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void SetDestination(Kernel::HLERequestContext& ctx) { | ||||
|     void SetDestination(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto log_destination = rp.PopEnum<LogDestination>(); | ||||
|  | ||||
| @@ -343,7 +343,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void OpenLogger(Kernel::HLERequestContext& ctx) { | ||||
|     void OpenLogger(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_LM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
| #include <memory> | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/mii/mii.h" | ||||
| #include "core/hle/service/mii/mii_manager.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| @@ -65,7 +65,7 @@ private: | ||||
|         return out; | ||||
|     } | ||||
|  | ||||
|     void IsUpdated(Kernel::HLERequestContext& ctx) { | ||||
|     void IsUpdated(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto source_flag{rp.PopRaw<SourceFlag>()}; | ||||
|  | ||||
| @@ -76,7 +76,7 @@ private: | ||||
|         rb.Push(manager.CheckAndResetUpdateCounter(source_flag, current_update_counter)); | ||||
|     } | ||||
|  | ||||
|     void IsFullDatabase(Kernel::HLERequestContext& ctx) { | ||||
|     void IsFullDatabase(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_Mii, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -84,7 +84,7 @@ private: | ||||
|         rb.Push(manager.IsFullDatabase()); | ||||
|     } | ||||
|  | ||||
|     void GetCount(Kernel::HLERequestContext& ctx) { | ||||
|     void GetCount(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto source_flag{rp.PopRaw<SourceFlag>()}; | ||||
|  | ||||
| @@ -95,7 +95,7 @@ private: | ||||
|         rb.Push<u32>(manager.GetCount(source_flag)); | ||||
|     } | ||||
|  | ||||
|     void Get(Kernel::HLERequestContext& ctx) { | ||||
|     void Get(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto source_flag{rp.PopRaw<SourceFlag>()}; | ||||
|  | ||||
| @@ -117,7 +117,7 @@ private: | ||||
|         rb.Push<u32>(static_cast<u32>(result->size())); | ||||
|     } | ||||
|  | ||||
|     void Get1(Kernel::HLERequestContext& ctx) { | ||||
|     void Get1(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto source_flag{rp.PopRaw<SourceFlag>()}; | ||||
|  | ||||
| @@ -142,7 +142,7 @@ private: | ||||
|         rb.Push<u32>(static_cast<u32>(result->size())); | ||||
|     } | ||||
|  | ||||
|     void UpdateLatest(Kernel::HLERequestContext& ctx) { | ||||
|     void UpdateLatest(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto info{rp.PopRaw<CharInfo>()}; | ||||
|         const auto source_flag{rp.PopRaw<SourceFlag>()}; | ||||
| @@ -161,7 +161,7 @@ private: | ||||
|         rb.PushRaw<CharInfo>(*result); | ||||
|     } | ||||
|  | ||||
|     void BuildRandom(Kernel::HLERequestContext& ctx) { | ||||
|     void BuildRandom(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto age{rp.PopRaw<Age>()}; | ||||
| @@ -196,7 +196,7 @@ private: | ||||
|         rb.PushRaw<CharInfo>(manager.BuildRandom(age, gender, race)); | ||||
|     } | ||||
|  | ||||
|     void BuildDefault(Kernel::HLERequestContext& ctx) { | ||||
|     void BuildDefault(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto index{rp.Pop<u32>()}; | ||||
|  | ||||
| @@ -215,7 +215,7 @@ private: | ||||
|         rb.PushRaw<CharInfo>(manager.BuildDefault(index)); | ||||
|     } | ||||
|  | ||||
|     void GetIndex(Kernel::HLERequestContext& ctx) { | ||||
|     void GetIndex(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         const auto info{rp.PopRaw<CharInfo>()}; | ||||
|  | ||||
| @@ -227,7 +227,7 @@ private: | ||||
|         rb.Push(index); | ||||
|     } | ||||
|  | ||||
|     void SetInterfaceVersion(Kernel::HLERequestContext& ctx) { | ||||
|     void SetInterfaceVersion(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         current_interface_version = rp.PopRaw<u32>(); | ||||
|  | ||||
| @@ -239,7 +239,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Convert(Kernel::HLERequestContext& ctx) { | ||||
|     void Convert(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto mii_v3{rp.PopRaw<Ver3StoreData>()}; | ||||
| @@ -275,7 +275,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void GetDatabaseService(Kernel::HLERequestContext& ctx) { | ||||
|     void GetDatabaseService(HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(ResultSuccess); | ||||
|         rb.PushIpcInterface<IDatabaseService>(system); | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/mm/mm_u.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/sm/sm.h" | ||||
| @@ -29,21 +29,21 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void InitializeOld(Kernel::HLERequestContext& ctx) { | ||||
|     void InitializeOld(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_MM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void FinalizeOld(Kernel::HLERequestContext& ctx) { | ||||
|     void FinalizeOld(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_MM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SetAndWaitOld(Kernel::HLERequestContext& ctx) { | ||||
|     void SetAndWaitOld(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         min = rp.Pop<u32>(); | ||||
|         max = rp.Pop<u32>(); | ||||
| @@ -54,7 +54,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetOld(Kernel::HLERequestContext& ctx) { | ||||
|     void GetOld(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_MM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -62,7 +62,7 @@ private: | ||||
|         rb.Push(current); | ||||
|     } | ||||
|  | ||||
|     void Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     void Initialize(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_MM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -70,14 +70,14 @@ private: | ||||
|         rb.Push<u32>(id); // Any non zero value | ||||
|     } | ||||
|  | ||||
|     void Finalize(Kernel::HLERequestContext& ctx) { | ||||
|     void Finalize(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_MM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SetAndWait(Kernel::HLERequestContext& ctx) { | ||||
|     void SetAndWait(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u32 input_id = rp.Pop<u32>(); | ||||
|         min = rp.Pop<u32>(); | ||||
| @@ -90,7 +90,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Get(Kernel::HLERequestContext& ctx) { | ||||
|     void Get(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_MM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/mnpp/mnpp_app.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| @@ -23,14 +23,14 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Unknown0(Kernel::HLERequestContext& ctx) { | ||||
|     void Unknown0(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_MNPP, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Unknown1(Kernel::HLERequestContext& ctx) { | ||||
|     void Unknown1(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_MNPP, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
| #include <memory> | ||||
|  | ||||
| #include "core/file_sys/romfs_factory.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/ncm/ncm.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
|   | ||||
| @@ -4,8 +4,8 @@ | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hid/hid_types.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nfc/mifare_user.h" | ||||
| #include "core/hle/service/nfc/nfc_device.h" | ||||
| #include "core/hle/service/nfc/nfc_result.h" | ||||
| @@ -45,7 +45,7 @@ MFIUser ::~MFIUser() { | ||||
|     availability_change_event->Close(); | ||||
| } | ||||
|  | ||||
| void MFIUser::Initialize(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::Initialize(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFC, "called"); | ||||
|  | ||||
|     state = State::Initialized; | ||||
| @@ -58,7 +58,7 @@ void MFIUser::Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void MFIUser::Finalize(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::Finalize(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFC, "called"); | ||||
|  | ||||
|     state = State::NonInitialized; | ||||
| @@ -71,7 +71,7 @@ void MFIUser::Finalize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void MFIUser::ListDevices(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::ListDevices(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|     if (state == State::NonInitialized) { | ||||
| @@ -117,7 +117,7 @@ void MFIUser::ListDevices(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<s32>(nfp_devices.size())); | ||||
| } | ||||
|  | ||||
| void MFIUser::StartDetection(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::StartDetection(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -141,7 +141,7 @@ void MFIUser::StartDetection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void MFIUser::StopDetection(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::StopDetection(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -165,7 +165,7 @@ void MFIUser::StopDetection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void MFIUser::Read(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::Read(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto buffer{ctx.ReadBuffer()}; | ||||
| @@ -206,7 +206,7 @@ void MFIUser::Read(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void MFIUser::Write(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::Write(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto buffer{ctx.ReadBuffer()}; | ||||
| @@ -250,7 +250,7 @@ void MFIUser::Write(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void MFIUser::GetTagInfo(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::GetTagInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -276,7 +276,7 @@ void MFIUser::GetTagInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void MFIUser::GetActivateEventHandle(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::GetActivateEventHandle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -300,7 +300,7 @@ void MFIUser::GetActivateEventHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(device.value()->GetActivateEvent()); | ||||
| } | ||||
|  | ||||
| void MFIUser::GetDeactivateEventHandle(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::GetDeactivateEventHandle(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -324,7 +324,7 @@ void MFIUser::GetDeactivateEventHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(device.value()->GetDeactivateEvent()); | ||||
| } | ||||
|  | ||||
| void MFIUser::GetState(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::GetState(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -332,7 +332,7 @@ void MFIUser::GetState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(state); | ||||
| } | ||||
|  | ||||
| void MFIUser::GetDeviceState(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::GetDeviceState(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -350,7 +350,7 @@ void MFIUser::GetDeviceState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(device.value()->GetCurrentState()); | ||||
| } | ||||
|  | ||||
| void MFIUser::GetNpadId(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::GetNpadId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -374,7 +374,7 @@ void MFIUser::GetNpadId(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(device.value()->GetNpadId()); | ||||
| } | ||||
|  | ||||
| void MFIUser::GetAvailabilityChangeEventHandle(Kernel::HLERequestContext& ctx) { | ||||
| void MFIUser::GetAvailabilityChangeEventHandle(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFC, "called"); | ||||
|  | ||||
|     if (state == State::NonInitialized) { | ||||
|   | ||||
| @@ -24,20 +24,20 @@ private: | ||||
|         Initialized, | ||||
|     }; | ||||
|  | ||||
|     void Initialize(Kernel::HLERequestContext& ctx); | ||||
|     void Finalize(Kernel::HLERequestContext& ctx); | ||||
|     void ListDevices(Kernel::HLERequestContext& ctx); | ||||
|     void StartDetection(Kernel::HLERequestContext& ctx); | ||||
|     void StopDetection(Kernel::HLERequestContext& ctx); | ||||
|     void Read(Kernel::HLERequestContext& ctx); | ||||
|     void Write(Kernel::HLERequestContext& ctx); | ||||
|     void GetTagInfo(Kernel::HLERequestContext& ctx); | ||||
|     void GetActivateEventHandle(Kernel::HLERequestContext& ctx); | ||||
|     void GetDeactivateEventHandle(Kernel::HLERequestContext& ctx); | ||||
|     void GetState(Kernel::HLERequestContext& ctx); | ||||
|     void GetDeviceState(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadId(Kernel::HLERequestContext& ctx); | ||||
|     void GetAvailabilityChangeEventHandle(Kernel::HLERequestContext& ctx); | ||||
|     void Initialize(HLERequestContext& ctx); | ||||
|     void Finalize(HLERequestContext& ctx); | ||||
|     void ListDevices(HLERequestContext& ctx); | ||||
|     void StartDetection(HLERequestContext& ctx); | ||||
|     void StopDetection(HLERequestContext& ctx); | ||||
|     void Read(HLERequestContext& ctx); | ||||
|     void Write(HLERequestContext& ctx); | ||||
|     void GetTagInfo(HLERequestContext& ctx); | ||||
|     void GetActivateEventHandle(HLERequestContext& ctx); | ||||
|     void GetDeactivateEventHandle(HLERequestContext& ctx); | ||||
|     void GetState(HLERequestContext& ctx); | ||||
|     void GetDeviceState(HLERequestContext& ctx); | ||||
|     void GetNpadId(HLERequestContext& ctx); | ||||
|     void GetAvailabilityChangeEventHandle(HLERequestContext& ctx); | ||||
|  | ||||
|     std::optional<std::shared_ptr<NfcDevice>> GetNfcDevice(u64 handle); | ||||
|  | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "common/settings.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nfc/mifare_user.h" | ||||
| #include "core/hle/service/nfc/nfc.h" | ||||
| #include "core/hle/service/nfc/nfc_user.h" | ||||
| @@ -42,7 +42,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateAmInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateAmInterface(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -64,7 +64,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateUserInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateUserInterface(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -86,7 +86,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateUserInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateUserInterface(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -145,7 +145,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateSystemInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateSystemInterface(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -7,8 +7,8 @@ | ||||
| #include "core/hid/emulated_controller.h" | ||||
| #include "core/hid/hid_core.h" | ||||
| #include "core/hid/hid_types.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nfc/nfc_device.h" | ||||
| #include "core/hle/service/nfc/nfc_result.h" | ||||
| #include "core/hle/service/nfc/nfc_user.h" | ||||
|   | ||||
| @@ -4,8 +4,8 @@ | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hid/hid_types.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nfc/nfc_device.h" | ||||
| #include "core/hle/service/nfc/nfc_result.h" | ||||
| #include "core/hle/service/nfc/nfc_user.h" | ||||
| @@ -54,7 +54,7 @@ IUser ::~IUser() { | ||||
|     availability_change_event->Close(); | ||||
| } | ||||
|  | ||||
| void IUser::Initialize(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Initialize(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFC, "called"); | ||||
|  | ||||
|     state = State::Initialized; | ||||
| @@ -67,7 +67,7 @@ void IUser::Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IUser::Finalize(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Finalize(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFC, "called"); | ||||
|  | ||||
|     state = State::NonInitialized; | ||||
| @@ -80,7 +80,7 @@ void IUser::Finalize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IUser::GetState(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetState(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -88,7 +88,7 @@ void IUser::GetState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(state); | ||||
| } | ||||
|  | ||||
| void IUser::IsNfcEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::IsNfcEnabled(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -96,7 +96,7 @@ void IUser::IsNfcEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(state != State::NonInitialized); | ||||
| } | ||||
|  | ||||
| void IUser::ListDevices(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::ListDevices(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NFC, "called"); | ||||
|  | ||||
|     if (state == State::NonInitialized) { | ||||
| @@ -142,7 +142,7 @@ void IUser::ListDevices(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<s32>(nfp_devices.size())); | ||||
| } | ||||
|  | ||||
| void IUser::GetDeviceState(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetDeviceState(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -160,7 +160,7 @@ void IUser::GetDeviceState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(device.value()->GetCurrentState()); | ||||
| } | ||||
|  | ||||
| void IUser::GetNpadId(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetNpadId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -184,7 +184,7 @@ void IUser::GetNpadId(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(device.value()->GetNpadId()); | ||||
| } | ||||
|  | ||||
| void IUser::AttachAvailabilityChangeEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::AttachAvailabilityChangeEvent(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFC, "called"); | ||||
|  | ||||
|     if (state == State::NonInitialized) { | ||||
| @@ -198,7 +198,7 @@ void IUser::AttachAvailabilityChangeEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(availability_change_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void IUser::StartDetection(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::StartDetection(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto nfp_protocol{rp.PopEnum<NFP::TagProtocol>()}; | ||||
| @@ -223,7 +223,7 @@ void IUser::StartDetection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::StopDetection(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::StopDetection(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -247,7 +247,7 @@ void IUser::StopDetection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::GetTagInfo(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetTagInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -273,7 +273,7 @@ void IUser::GetTagInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::AttachActivateEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::AttachActivateEvent(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -297,7 +297,7 @@ void IUser::AttachActivateEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(device.value()->GetActivateEvent()); | ||||
| } | ||||
|  | ||||
| void IUser::AttachDeactivateEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::AttachDeactivateEvent(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFC, "called, device_handle={}", device_handle); | ||||
| @@ -321,7 +321,7 @@ void IUser::AttachDeactivateEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(device.value()->GetDeactivateEvent()); | ||||
| } | ||||
|  | ||||
| void IUser::SendCommandByPassThrough(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::SendCommandByPassThrough(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto timeout{rp.PopRaw<Time::Clock::TimeSpanType>()}; | ||||
|   | ||||
| @@ -24,20 +24,20 @@ private: | ||||
|         Initialized, | ||||
|     }; | ||||
|  | ||||
|     void Initialize(Kernel::HLERequestContext& ctx); | ||||
|     void Finalize(Kernel::HLERequestContext& ctx); | ||||
|     void GetState(Kernel::HLERequestContext& ctx); | ||||
|     void IsNfcEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void ListDevices(Kernel::HLERequestContext& ctx); | ||||
|     void GetDeviceState(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadId(Kernel::HLERequestContext& ctx); | ||||
|     void AttachAvailabilityChangeEvent(Kernel::HLERequestContext& ctx); | ||||
|     void StartDetection(Kernel::HLERequestContext& ctx); | ||||
|     void StopDetection(Kernel::HLERequestContext& ctx); | ||||
|     void GetTagInfo(Kernel::HLERequestContext& ctx); | ||||
|     void AttachActivateEvent(Kernel::HLERequestContext& ctx); | ||||
|     void AttachDeactivateEvent(Kernel::HLERequestContext& ctx); | ||||
|     void SendCommandByPassThrough(Kernel::HLERequestContext& ctx); | ||||
|     void Initialize(HLERequestContext& ctx); | ||||
|     void Finalize(HLERequestContext& ctx); | ||||
|     void GetState(HLERequestContext& ctx); | ||||
|     void IsNfcEnabled(HLERequestContext& ctx); | ||||
|     void ListDevices(HLERequestContext& ctx); | ||||
|     void GetDeviceState(HLERequestContext& ctx); | ||||
|     void GetNpadId(HLERequestContext& ctx); | ||||
|     void AttachAvailabilityChangeEvent(HLERequestContext& ctx); | ||||
|     void StartDetection(HLERequestContext& ctx); | ||||
|     void StopDetection(HLERequestContext& ctx); | ||||
|     void GetTagInfo(HLERequestContext& ctx); | ||||
|     void AttachActivateEvent(HLERequestContext& ctx); | ||||
|     void AttachDeactivateEvent(HLERequestContext& ctx); | ||||
|     void SendCommandByPassThrough(HLERequestContext& ctx); | ||||
|  | ||||
|     std::optional<std::shared_ptr<NfcDevice>> GetNfcDevice(u64 handle); | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nfp/nfp.h" | ||||
| #include "core/hle/service/nfp/nfp_user.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| @@ -22,7 +22,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateUserInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateUserInterface(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NFP, "called"); | ||||
|  | ||||
|         if (user_interface == nullptr) { | ||||
|   | ||||
| @@ -11,8 +11,8 @@ | ||||
| #include "core/hid/emulated_controller.h" | ||||
| #include "core/hid/hid_core.h" | ||||
| #include "core/hid/hid_types.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/mii/mii_manager.h" | ||||
| #include "core/hle/service/mii/types.h" | ||||
| #include "core/hle/service/nfp/amiibo_crypto.h" | ||||
|   | ||||
| @@ -4,8 +4,8 @@ | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hid/hid_types.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nfp/nfp_device.h" | ||||
| #include "core/hle/service/nfp/nfp_result.h" | ||||
| #include "core/hle/service/nfp/nfp_user.h" | ||||
| @@ -56,7 +56,7 @@ IUser ::~IUser() { | ||||
|     availability_change_event->Close(); | ||||
| } | ||||
|  | ||||
| void IUser::Initialize(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Initialize(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFP, "called"); | ||||
|  | ||||
|     state = State::Initialized; | ||||
| @@ -69,7 +69,7 @@ void IUser::Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IUser::Finalize(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Finalize(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFP, "called"); | ||||
|  | ||||
|     state = State::NonInitialized; | ||||
| @@ -82,7 +82,7 @@ void IUser::Finalize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IUser::ListDevices(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::ListDevices(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NFP, "called"); | ||||
|  | ||||
|     if (state == State::NonInitialized) { | ||||
| @@ -128,7 +128,7 @@ void IUser::ListDevices(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<s32>(nfp_devices.size())); | ||||
| } | ||||
|  | ||||
| void IUser::StartDetection(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::StartDetection(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto nfp_protocol{rp.PopEnum<TagProtocol>()}; | ||||
| @@ -153,7 +153,7 @@ void IUser::StartDetection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::StopDetection(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::StopDetection(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -177,7 +177,7 @@ void IUser::StopDetection(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::Mount(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Mount(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto model_type{rp.PopEnum<ModelType>()}; | ||||
| @@ -204,7 +204,7 @@ void IUser::Mount(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::Unmount(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Unmount(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -228,7 +228,7 @@ void IUser::Unmount(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::OpenApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::OpenApplicationArea(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto access_id{rp.Pop<u32>()}; | ||||
| @@ -253,7 +253,7 @@ void IUser::OpenApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::GetApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetApplicationArea(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto data_size = ctx.GetWriteBufferSize(); | ||||
| @@ -287,7 +287,7 @@ void IUser::GetApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(static_cast<u32>(data_size)); | ||||
| } | ||||
|  | ||||
| void IUser::SetApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::SetApplicationArea(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto data{ctx.ReadBuffer()}; | ||||
| @@ -318,7 +318,7 @@ void IUser::SetApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::Flush(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Flush(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -342,7 +342,7 @@ void IUser::Flush(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::Restore(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::Restore(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_WARNING(Service_NFP, "(STUBBED) called, device_handle={}", device_handle); | ||||
| @@ -366,7 +366,7 @@ void IUser::Restore(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::CreateApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::CreateApplicationArea(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto access_id{rp.Pop<u32>()}; | ||||
| @@ -399,7 +399,7 @@ void IUser::CreateApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::GetTagInfo(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetTagInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -425,7 +425,7 @@ void IUser::GetTagInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::GetRegisterInfo(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetRegisterInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -451,7 +451,7 @@ void IUser::GetRegisterInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::GetCommonInfo(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetCommonInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -477,7 +477,7 @@ void IUser::GetCommonInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::GetModelInfo(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetModelInfo(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_INFO(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -503,7 +503,7 @@ void IUser::GetModelInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(result); | ||||
| } | ||||
|  | ||||
| void IUser::AttachActivateEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::AttachActivateEvent(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -527,7 +527,7 @@ void IUser::AttachActivateEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(device.value()->GetActivateEvent()); | ||||
| } | ||||
|  | ||||
| void IUser::AttachDeactivateEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::AttachDeactivateEvent(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -551,7 +551,7 @@ void IUser::AttachDeactivateEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(device.value()->GetDeactivateEvent()); | ||||
| } | ||||
|  | ||||
| void IUser::GetState(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetState(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NFP, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -559,7 +559,7 @@ void IUser::GetState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(state); | ||||
| } | ||||
|  | ||||
| void IUser::GetDeviceState(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetDeviceState(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -577,7 +577,7 @@ void IUser::GetDeviceState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(device.value()->GetCurrentState()); | ||||
| } | ||||
|  | ||||
| void IUser::GetNpadId(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetNpadId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -601,7 +601,7 @@ void IUser::GetNpadId(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(device.value()->GetNpadId()); | ||||
| } | ||||
|  | ||||
| void IUser::GetApplicationAreaSize(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::GetApplicationAreaSize(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     LOG_DEBUG(Service_NFP, "called, device_handle={}", device_handle); | ||||
| @@ -619,7 +619,7 @@ void IUser::GetApplicationAreaSize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(device.value()->GetApplicationAreaSize()); | ||||
| } | ||||
|  | ||||
| void IUser::AttachAvailabilityChangeEvent(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::AttachAvailabilityChangeEvent(HLERequestContext& ctx) { | ||||
|     LOG_INFO(Service_NFP, "called"); | ||||
|  | ||||
|     if (state == State::NonInitialized) { | ||||
| @@ -633,7 +633,7 @@ void IUser::AttachAvailabilityChangeEvent(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushCopyObjects(availability_change_event->GetReadableEvent()); | ||||
| } | ||||
|  | ||||
| void IUser::RecreateApplicationArea(Kernel::HLERequestContext& ctx) { | ||||
| void IUser::RecreateApplicationArea(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto device_handle{rp.Pop<u64>()}; | ||||
|     const auto access_id{rp.Pop<u32>()}; | ||||
|   | ||||
| @@ -24,31 +24,31 @@ private: | ||||
|         Initialized, | ||||
|     }; | ||||
|  | ||||
|     void Initialize(Kernel::HLERequestContext& ctx); | ||||
|     void Finalize(Kernel::HLERequestContext& ctx); | ||||
|     void ListDevices(Kernel::HLERequestContext& ctx); | ||||
|     void StartDetection(Kernel::HLERequestContext& ctx); | ||||
|     void StopDetection(Kernel::HLERequestContext& ctx); | ||||
|     void Mount(Kernel::HLERequestContext& ctx); | ||||
|     void Unmount(Kernel::HLERequestContext& ctx); | ||||
|     void OpenApplicationArea(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationArea(Kernel::HLERequestContext& ctx); | ||||
|     void SetApplicationArea(Kernel::HLERequestContext& ctx); | ||||
|     void Flush(Kernel::HLERequestContext& ctx); | ||||
|     void Restore(Kernel::HLERequestContext& ctx); | ||||
|     void CreateApplicationArea(Kernel::HLERequestContext& ctx); | ||||
|     void GetTagInfo(Kernel::HLERequestContext& ctx); | ||||
|     void GetRegisterInfo(Kernel::HLERequestContext& ctx); | ||||
|     void GetCommonInfo(Kernel::HLERequestContext& ctx); | ||||
|     void GetModelInfo(Kernel::HLERequestContext& ctx); | ||||
|     void AttachActivateEvent(Kernel::HLERequestContext& ctx); | ||||
|     void AttachDeactivateEvent(Kernel::HLERequestContext& ctx); | ||||
|     void GetState(Kernel::HLERequestContext& ctx); | ||||
|     void GetDeviceState(Kernel::HLERequestContext& ctx); | ||||
|     void GetNpadId(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationAreaSize(Kernel::HLERequestContext& ctx); | ||||
|     void AttachAvailabilityChangeEvent(Kernel::HLERequestContext& ctx); | ||||
|     void RecreateApplicationArea(Kernel::HLERequestContext& ctx); | ||||
|     void Initialize(HLERequestContext& ctx); | ||||
|     void Finalize(HLERequestContext& ctx); | ||||
|     void ListDevices(HLERequestContext& ctx); | ||||
|     void StartDetection(HLERequestContext& ctx); | ||||
|     void StopDetection(HLERequestContext& ctx); | ||||
|     void Mount(HLERequestContext& ctx); | ||||
|     void Unmount(HLERequestContext& ctx); | ||||
|     void OpenApplicationArea(HLERequestContext& ctx); | ||||
|     void GetApplicationArea(HLERequestContext& ctx); | ||||
|     void SetApplicationArea(HLERequestContext& ctx); | ||||
|     void Flush(HLERequestContext& ctx); | ||||
|     void Restore(HLERequestContext& ctx); | ||||
|     void CreateApplicationArea(HLERequestContext& ctx); | ||||
|     void GetTagInfo(HLERequestContext& ctx); | ||||
|     void GetRegisterInfo(HLERequestContext& ctx); | ||||
|     void GetCommonInfo(HLERequestContext& ctx); | ||||
|     void GetModelInfo(HLERequestContext& ctx); | ||||
|     void AttachActivateEvent(HLERequestContext& ctx); | ||||
|     void AttachDeactivateEvent(HLERequestContext& ctx); | ||||
|     void GetState(HLERequestContext& ctx); | ||||
|     void GetDeviceState(HLERequestContext& ctx); | ||||
|     void GetNpadId(HLERequestContext& ctx); | ||||
|     void GetApplicationAreaSize(HLERequestContext& ctx); | ||||
|     void AttachAvailabilityChangeEvent(HLERequestContext& ctx); | ||||
|     void RecreateApplicationArea(HLERequestContext& ctx); | ||||
|  | ||||
|     std::optional<std::shared_ptr<NfpDevice>> GetNfpDevice(u64 handle); | ||||
|  | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|  | ||||
| #include "common/string_util.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/ngct/ngct.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/service.h" | ||||
| @@ -24,7 +24,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Match(Kernel::HLERequestContext& ctx) { | ||||
|     void Match(HLERequestContext& ctx) { | ||||
|         const auto buffer = ctx.ReadBuffer(); | ||||
|         const auto text = Common::StringFromFixedZeroTerminatedBuffer( | ||||
|             reinterpret_cast<const char*>(buffer.data()), buffer.size()); | ||||
| @@ -37,7 +37,7 @@ private: | ||||
|         rb.Push(false); | ||||
|     } | ||||
|  | ||||
|     void Filter(Kernel::HLERequestContext& ctx) { | ||||
|     void Filter(HLERequestContext& ctx) { | ||||
|         const auto buffer = ctx.ReadBuffer(); | ||||
|         const auto text = Common::StringFromFixedZeroTerminatedBuffer( | ||||
|             reinterpret_cast<const char*>(buffer.data()), buffer.size()); | ||||
|   | ||||
| @@ -2,8 +2,8 @@ | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/kernel_helpers.h" | ||||
| #include "core/hle/service/nifm/nifm.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| @@ -217,7 +217,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void Submit(Kernel::HLERequestContext& ctx) { | ||||
|     void Submit(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|         if (state == RequestState::NotSubmitted) { | ||||
| @@ -228,7 +228,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetRequestState(Kernel::HLERequestContext& ctx) { | ||||
|     void GetRequestState(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -236,7 +236,7 @@ private: | ||||
|         rb.PushEnum(state); | ||||
|     } | ||||
|  | ||||
|     void GetResult(Kernel::HLERequestContext& ctx) { | ||||
|     void GetResult(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|         const auto result = [this] { | ||||
| @@ -261,7 +261,7 @@ private: | ||||
|         rb.Push(result); | ||||
|     } | ||||
|  | ||||
|     void GetSystemEventReadableHandles(Kernel::HLERequestContext& ctx) { | ||||
|     void GetSystemEventReadableHandles(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 2}; | ||||
| @@ -269,21 +269,21 @@ private: | ||||
|         rb.PushCopyObjects(event1->GetReadableEvent(), event2->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void Cancel(Kernel::HLERequestContext& ctx) { | ||||
|     void Cancel(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void SetConnectionConfirmationOption(Kernel::HLERequestContext& ctx) { | ||||
|     void SetConnectionConfirmationOption(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetAppletInfo(Kernel::HLERequestContext& ctx) { | ||||
|     void GetAppletInfo(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|         std::vector<u8> out_buffer(ctx.GetWriteBufferSize()); | ||||
| @@ -322,7 +322,7 @@ public: | ||||
|     } | ||||
| }; | ||||
|  | ||||
| void IGeneralService::GetClientId(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::GetClientId(HLERequestContext& ctx) { | ||||
|     static constexpr u32 client_id = 1; | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
| @@ -331,7 +331,7 @@ void IGeneralService::GetClientId(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u64>(client_id); // Client ID needs to be non zero otherwise it's considered invalid | ||||
| } | ||||
|  | ||||
| void IGeneralService::CreateScanRequest(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::CreateScanRequest(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -340,7 +340,7 @@ void IGeneralService::CreateScanRequest(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IScanRequest>(system); | ||||
| } | ||||
|  | ||||
| void IGeneralService::CreateRequest(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::CreateRequest(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -349,7 +349,7 @@ void IGeneralService::CreateRequest(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushIpcInterface<IRequest>(system); | ||||
| } | ||||
|  | ||||
| void IGeneralService::GetCurrentNetworkProfile(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::GetCurrentNetworkProfile(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     const auto net_iface = Network::GetSelectedNetworkInterface(); | ||||
| @@ -408,14 +408,14 @@ void IGeneralService::GetCurrentNetworkProfile(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IGeneralService::RemoveNetworkProfile(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::RemoveNetworkProfile(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IGeneralService::GetCurrentIpAddress(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::GetCurrentIpAddress(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     auto ipv4 = Network::GetHostIPv4Address(); | ||||
| @@ -436,7 +436,7 @@ void IGeneralService::GetCurrentIpAddress(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw(*ipv4); | ||||
| } | ||||
|  | ||||
| void IGeneralService::CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::CreateTemporaryNetworkProfile(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
|  | ||||
|     ASSERT_MSG(ctx.GetReadBufferSize() == 0x17c, "SfNetworkProfileData is not the correct size"); | ||||
| @@ -451,7 +451,7 @@ void IGeneralService::CreateTemporaryNetworkProfile(Kernel::HLERequestContext& c | ||||
|     rb.PushRaw<u128>(uuid); | ||||
| } | ||||
|  | ||||
| void IGeneralService::GetCurrentIpConfigInfo(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::GetCurrentIpConfigInfo(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     struct IpConfigInfo { | ||||
| @@ -495,7 +495,7 @@ void IGeneralService::GetCurrentIpConfigInfo(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushRaw<IpConfigInfo>(ip_config_info); | ||||
| } | ||||
|  | ||||
| void IGeneralService::IsWirelessCommunicationEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::IsWirelessCommunicationEnabled(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -503,7 +503,7 @@ void IGeneralService::IsWirelessCommunicationEnabled(Kernel::HLERequestContext& | ||||
|     rb.Push<u8>(1); | ||||
| } | ||||
|  | ||||
| void IGeneralService::GetInternetConnectionStatus(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::GetInternetConnectionStatus(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     struct Output { | ||||
| @@ -520,7 +520,7 @@ void IGeneralService::GetInternetConnectionStatus(Kernel::HLERequestContext& ctx | ||||
|     rb.PushRaw(out); | ||||
| } | ||||
|  | ||||
| void IGeneralService::IsEthernetCommunicationEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::IsEthernetCommunicationEnabled(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -532,7 +532,7 @@ void IGeneralService::IsEthernetCommunicationEnabled(Kernel::HLERequestContext& | ||||
|     } | ||||
| } | ||||
|  | ||||
| void IGeneralService::IsAnyInternetRequestAccepted(Kernel::HLERequestContext& ctx) { | ||||
| void IGeneralService::IsAnyInternetRequestAccepted(HLERequestContext& ctx) { | ||||
|     LOG_ERROR(Service_NIFM, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -610,7 +610,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateGeneralServiceOld(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIFM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -618,7 +618,7 @@ private: | ||||
|         rb.PushIpcInterface<IGeneralService>(system); | ||||
|     } | ||||
|  | ||||
|     void CreateGeneralService(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateGeneralService(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIFM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|   | ||||
| @@ -22,18 +22,18 @@ public: | ||||
|     ~IGeneralService() override; | ||||
|  | ||||
| private: | ||||
|     void GetClientId(Kernel::HLERequestContext& ctx); | ||||
|     void CreateScanRequest(Kernel::HLERequestContext& ctx); | ||||
|     void CreateRequest(Kernel::HLERequestContext& ctx); | ||||
|     void GetCurrentNetworkProfile(Kernel::HLERequestContext& ctx); | ||||
|     void RemoveNetworkProfile(Kernel::HLERequestContext& ctx); | ||||
|     void GetCurrentIpAddress(Kernel::HLERequestContext& ctx); | ||||
|     void CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx); | ||||
|     void GetCurrentIpConfigInfo(Kernel::HLERequestContext& ctx); | ||||
|     void IsWirelessCommunicationEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void GetInternetConnectionStatus(Kernel::HLERequestContext& ctx); | ||||
|     void IsEthernetCommunicationEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void IsAnyInternetRequestAccepted(Kernel::HLERequestContext& ctx); | ||||
|     void GetClientId(HLERequestContext& ctx); | ||||
|     void CreateScanRequest(HLERequestContext& ctx); | ||||
|     void CreateRequest(HLERequestContext& ctx); | ||||
|     void GetCurrentNetworkProfile(HLERequestContext& ctx); | ||||
|     void RemoveNetworkProfile(HLERequestContext& ctx); | ||||
|     void GetCurrentIpAddress(HLERequestContext& ctx); | ||||
|     void CreateTemporaryNetworkProfile(HLERequestContext& ctx); | ||||
|     void GetCurrentIpConfigInfo(HLERequestContext& ctx); | ||||
|     void IsWirelessCommunicationEnabled(HLERequestContext& ctx); | ||||
|     void GetInternetConnectionStatus(HLERequestContext& ctx); | ||||
|     void IsEthernetCommunicationEnabled(HLERequestContext& ctx); | ||||
|     void IsAnyInternetRequestAccepted(HLERequestContext& ctx); | ||||
|  | ||||
|     Network::RoomNetwork& network; | ||||
| }; | ||||
|   | ||||
| @@ -4,8 +4,8 @@ | ||||
| #include <chrono> | ||||
| #include <ctime> | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/kernel_helpers.h" | ||||
| #include "core/hle/service/nim/nim.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| @@ -46,7 +46,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateAsyncInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateAsyncInterface(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIM, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(ResultSuccess); | ||||
| @@ -68,7 +68,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateAccessorInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateAccessorInterface(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIM, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(ResultSuccess); | ||||
| @@ -239,14 +239,14 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void CreateServerInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void CreateServerInterface(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIM, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(ResultSuccess); | ||||
|         rb.PushIpcInterface<IShopServiceAccessServer>(system); | ||||
|     } | ||||
|  | ||||
|     void IsLargeResourceAvailable(Kernel::HLERequestContext& ctx) { | ||||
|     void IsLargeResourceAvailable(HLERequestContext& ctx) { | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|  | ||||
|         const auto unknown{rp.Pop<u64>()}; | ||||
| @@ -325,7 +325,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void StartTask(Kernel::HLERequestContext& ctx) { | ||||
|     void StartTask(HLERequestContext& ctx) { | ||||
|         // No need to connect to the internet, just finish the task straight away. | ||||
|         LOG_DEBUG(Service_NIM, "called"); | ||||
|         finished_event->Signal(); | ||||
| @@ -333,7 +333,7 @@ private: | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void GetFinishNotificationEvent(Kernel::HLERequestContext& ctx) { | ||||
|     void GetFinishNotificationEvent(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @@ -341,21 +341,21 @@ private: | ||||
|         rb.PushCopyObjects(finished_event->GetReadableEvent()); | ||||
|     } | ||||
|  | ||||
|     void GetResult(Kernel::HLERequestContext& ctx) { | ||||
|     void GetResult(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void Cancel(Kernel::HLERequestContext& ctx) { | ||||
|     void Cancel(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIM, "called"); | ||||
|         finished_event->Clear(); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void IsProcessing(Kernel::HLERequestContext& ctx) { | ||||
|     void IsProcessing(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -363,7 +363,7 @@ private: | ||||
|         rb.PushRaw<u32>(0); // We instantly process the request | ||||
|     } | ||||
|  | ||||
|     void GetServerTime(Kernel::HLERequestContext& ctx) { | ||||
|     void GetServerTime(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIM, "called"); | ||||
|  | ||||
|         const s64 server_time{std::chrono::duration_cast<std::chrono::seconds>( | ||||
| @@ -394,7 +394,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void OpenEnsureNetworkClockAvailabilityService(Kernel::HLERequestContext& ctx) { | ||||
|     void OpenEnsureNetworkClockAvailabilityService(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NIM, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -403,14 +403,14 @@ private: | ||||
|     } | ||||
|  | ||||
|     // TODO(ogniK): Do we need these? | ||||
|     void SuspendAutonomicTimeCorrection(Kernel::HLERequestContext& ctx) { | ||||
|     void SuspendAutonomicTimeCorrection(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(ResultSuccess); | ||||
|     } | ||||
|  | ||||
|     void ResumeAutonomicTimeCorrection(Kernel::HLERequestContext& ctx) { | ||||
|     void ResumeAutonomicTimeCorrection(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NIM, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|   | ||||
| @@ -15,11 +15,11 @@ | ||||
| #include "core/file_sys/registered_cache.h" | ||||
| #include "core/file_sys/romfs.h" | ||||
| #include "core/file_sys/system_archive/system_archive.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_shared_memory.h" | ||||
| #include "core/hle/kernel/kernel.h" | ||||
| #include "core/hle/kernel/physical_memory.h" | ||||
| #include "core/hle/service/filesystem/filesystem.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/ns/iplatform_service_manager.h" | ||||
|  | ||||
| namespace Service::NS { | ||||
| @@ -208,7 +208,7 @@ IPlatformServiceManager::IPlatformServiceManager(Core::System& system_, const ch | ||||
|  | ||||
| IPlatformServiceManager::~IPlatformServiceManager() = default; | ||||
|  | ||||
| void IPlatformServiceManager::RequestLoad(Kernel::HLERequestContext& ctx) { | ||||
| void IPlatformServiceManager::RequestLoad(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const u32 shared_font_type{rp.Pop<u32>()}; | ||||
|     // Games don't call this so all fonts should be loaded | ||||
| @@ -218,7 +218,7 @@ void IPlatformServiceManager::RequestLoad(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void IPlatformServiceManager::GetLoadState(Kernel::HLERequestContext& ctx) { | ||||
| void IPlatformServiceManager::GetLoadState(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const u32 font_id{rp.Pop<u32>()}; | ||||
|     LOG_DEBUG(Service_NS, "called, font_id={}", font_id); | ||||
| @@ -228,7 +228,7 @@ void IPlatformServiceManager::GetLoadState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u32>(static_cast<u32>(LoadState::Done)); | ||||
| } | ||||
|  | ||||
| void IPlatformServiceManager::GetSize(Kernel::HLERequestContext& ctx) { | ||||
| void IPlatformServiceManager::GetSize(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const u32 font_id{rp.Pop<u32>()}; | ||||
|     LOG_DEBUG(Service_NS, "called, font_id={}", font_id); | ||||
| @@ -238,7 +238,7 @@ void IPlatformServiceManager::GetSize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push<u32>(impl->GetSharedFontRegion(font_id).size); | ||||
| } | ||||
|  | ||||
| void IPlatformServiceManager::GetSharedMemoryAddressOffset(Kernel::HLERequestContext& ctx) { | ||||
| void IPlatformServiceManager::GetSharedMemoryAddressOffset(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const u32 font_id{rp.Pop<u32>()}; | ||||
|     LOG_DEBUG(Service_NS, "called, font_id={}", font_id); | ||||
| @@ -248,7 +248,7 @@ void IPlatformServiceManager::GetSharedMemoryAddressOffset(Kernel::HLERequestCon | ||||
|     rb.Push<u32>(impl->GetSharedFontRegion(font_id).offset); | ||||
| } | ||||
|  | ||||
| void IPlatformServiceManager::GetSharedMemoryNativeHandle(Kernel::HLERequestContext& ctx) { | ||||
| void IPlatformServiceManager::GetSharedMemoryNativeHandle(HLERequestContext& ctx) { | ||||
|     // Map backing memory for the font data | ||||
|     LOG_DEBUG(Service_NS, "called"); | ||||
|  | ||||
| @@ -261,7 +261,7 @@ void IPlatformServiceManager::GetSharedMemoryNativeHandle(Kernel::HLERequestCont | ||||
|     rb.PushCopyObjects(&kernel.GetFontSharedMem()); | ||||
| } | ||||
|  | ||||
| void IPlatformServiceManager::GetSharedFontInOrderOfPriority(Kernel::HLERequestContext& ctx) { | ||||
| void IPlatformServiceManager::GetSharedFontInOrderOfPriority(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const u64 language_code{rp.Pop<u64>()}; // TODO(ogniK): Find out what this is used for | ||||
|     LOG_DEBUG(Service_NS, "called, language_code={:X}", language_code); | ||||
|   | ||||
| @@ -42,12 +42,12 @@ public: | ||||
|     ~IPlatformServiceManager() override; | ||||
|  | ||||
| private: | ||||
|     void RequestLoad(Kernel::HLERequestContext& ctx); | ||||
|     void GetLoadState(Kernel::HLERequestContext& ctx); | ||||
|     void GetSize(Kernel::HLERequestContext& ctx); | ||||
|     void GetSharedMemoryAddressOffset(Kernel::HLERequestContext& ctx); | ||||
|     void GetSharedMemoryNativeHandle(Kernel::HLERequestContext& ctx); | ||||
|     void GetSharedFontInOrderOfPriority(Kernel::HLERequestContext& ctx); | ||||
|     void RequestLoad(HLERequestContext& ctx); | ||||
|     void GetLoadState(HLERequestContext& ctx); | ||||
|     void GetSize(HLERequestContext& ctx); | ||||
|     void GetSharedMemoryAddressOffset(HLERequestContext& ctx); | ||||
|     void GetSharedMemoryNativeHandle(HLERequestContext& ctx); | ||||
|     void GetSharedFontInOrderOfPriority(HLERequestContext& ctx); | ||||
|  | ||||
|     struct Impl; | ||||
|     std::unique_ptr<Impl> impl; | ||||
|   | ||||
| @@ -7,8 +7,8 @@ | ||||
| #include "core/file_sys/control_metadata.h" | ||||
| #include "core/file_sys/patch_manager.h" | ||||
| #include "core/file_sys/vfs.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/glue/glue_manager.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/ns/errors.h" | ||||
| #include "core/hle/service/ns/iplatform_service_manager.h" | ||||
| #include "core/hle/service/ns/language.h" | ||||
| @@ -329,7 +329,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_ | ||||
|  | ||||
| IApplicationManagerInterface::~IApplicationManagerInterface() = default; | ||||
|  | ||||
| void IApplicationManagerInterface::GetApplicationControlData(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationManagerInterface::GetApplicationControlData(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto flag = rp.PopRaw<u64>(); | ||||
|     LOG_DEBUG(Service_NS, "called with flag={:016X}", flag); | ||||
| @@ -388,7 +388,7 @@ void IApplicationManagerInterface::GetApplicationControlData(Kernel::HLERequestC | ||||
|     rb.Push<u32>(static_cast<u32>(out.size())); | ||||
| } | ||||
|  | ||||
| void IApplicationManagerInterface::GetApplicationDesiredLanguage(Kernel::HLERequestContext& ctx) { | ||||
| void IApplicationManagerInterface::GetApplicationDesiredLanguage(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto supported_languages = rp.Pop<u32>(); | ||||
|  | ||||
| @@ -440,7 +440,7 @@ ResultVal<u8> IApplicationManagerInterface::GetApplicationDesiredLanguage( | ||||
| } | ||||
|  | ||||
| void IApplicationManagerInterface::ConvertApplicationLanguageToLanguageCode( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
|     HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto application_language = rp.Pop<u8>(); | ||||
|  | ||||
| @@ -604,8 +604,7 @@ IReadOnlyApplicationControlDataInterface::IReadOnlyApplicationControlDataInterfa | ||||
|  | ||||
| IReadOnlyApplicationControlDataInterface::~IReadOnlyApplicationControlDataInterface() = default; | ||||
|  | ||||
| void IReadOnlyApplicationControlDataInterface::GetApplicationControlData( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
| void IReadOnlyApplicationControlDataInterface::GetApplicationControlData(HLERequestContext& ctx) { | ||||
|     enum class ApplicationControlSource : u8 { | ||||
|         CacheOnly, | ||||
|         Storage, | ||||
| @@ -753,7 +752,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void OpenSystemUpdateControl(Kernel::HLERequestContext& ctx) { | ||||
|     void OpenSystemUpdateControl(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NS, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -777,7 +776,7 @@ public: | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void NeedsUpdateVulnerability(Kernel::HLERequestContext& ctx) { | ||||
|     void NeedsUpdateVulnerability(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NS, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|   | ||||
| @@ -32,9 +32,9 @@ public: | ||||
|     ResultVal<u64> ConvertApplicationLanguageToLanguageCode(u8 application_language); | ||||
|  | ||||
| private: | ||||
|     void GetApplicationControlData(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationDesiredLanguage(Kernel::HLERequestContext& ctx); | ||||
|     void ConvertApplicationLanguageToLanguageCode(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationControlData(HLERequestContext& ctx); | ||||
|     void GetApplicationDesiredLanguage(HLERequestContext& ctx); | ||||
|     void ConvertApplicationLanguageToLanguageCode(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| class IApplicationVersionInterface final : public ServiceFramework<IApplicationVersionInterface> { | ||||
| @@ -80,7 +80,7 @@ public: | ||||
|     ~IReadOnlyApplicationControlDataInterface() override; | ||||
|  | ||||
| private: | ||||
|     void GetApplicationControlData(Kernel::HLERequestContext& ctx); | ||||
|     void GetApplicationControlData(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| class NS final : public ServiceFramework<NS> { | ||||
| @@ -92,7 +92,7 @@ public: | ||||
|  | ||||
| private: | ||||
|     template <typename T, typename... Args> | ||||
|     void PushInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void PushInterface(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NS, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -100,7 +100,7 @@ private: | ||||
|         rb.PushIpcInterface<T>(system); | ||||
|     } | ||||
|  | ||||
|     void PushIApplicationManagerInterface(Kernel::HLERequestContext& ctx) { | ||||
|     void PushIApplicationManagerInterface(HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service_NS, "called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -110,7 +110,7 @@ private: | ||||
|  | ||||
|     template <typename T, typename... Args> | ||||
|     std::shared_ptr<T> GetInterface(Args&&... args) const { | ||||
|         static_assert(std::is_base_of_v<Kernel::SessionRequestHandler, T>, | ||||
|         static_assert(std::is_base_of_v<SessionRequestHandler, T>, | ||||
|                       "Not a base of ServiceFrameworkBase"); | ||||
|  | ||||
|         return std::make_shared<T>(std::forward<Args>(args)...); | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
|  | ||||
| #include "common/logging/log.h" | ||||
| #include "common/uuid.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/ns/pdm_qry.h" | ||||
| #include "core/hle/service/service.h" | ||||
|  | ||||
| @@ -42,7 +42,7 @@ PDM_QRY::PDM_QRY(Core::System& system_) : ServiceFramework{system_, "pdm:qry"} { | ||||
|  | ||||
| PDM_QRY::~PDM_QRY() = default; | ||||
|  | ||||
| void PDM_QRY::QueryPlayStatisticsByApplicationIdAndUserAccountId(Kernel::HLERequestContext& ctx) { | ||||
| void PDM_QRY::QueryPlayStatisticsByApplicationIdAndUserAccountId(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto unknown = rp.Pop<bool>(); | ||||
|     rp.Pop<u8>(); // Padding | ||||
|   | ||||
| @@ -26,7 +26,7 @@ public: | ||||
|     ~PDM_QRY() override; | ||||
|  | ||||
| private: | ||||
|     void QueryPlayStatisticsByApplicationIdAndUserAccountId(Kernel::HLERequestContext& ctx); | ||||
|     void QueryPlayStatisticsByApplicationIdAndUserAccountId(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::NS | ||||
|   | ||||
| @@ -6,8 +6,8 @@ | ||||
|  | ||||
| #include <fmt/format.h> | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nvdrv/core/container.h" | ||||
| #include "core/hle/service/nvdrv/devices/nvdevice.h" | ||||
| #include "core/hle/service/nvdrv/devices/nvdisp_disp0.h" | ||||
|   | ||||
| @@ -5,16 +5,16 @@ | ||||
| #include <cinttypes> | ||||
| #include "common/logging/log.h" | ||||
| #include "core/core.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/k_event.h" | ||||
| #include "core/hle/kernel/k_readable_event.h" | ||||
| #include "core/hle/service/ipc_helpers.h" | ||||
| #include "core/hle/service/nvdrv/nvdata.h" | ||||
| #include "core/hle/service/nvdrv/nvdrv.h" | ||||
| #include "core/hle/service/nvdrv/nvdrv_interface.h" | ||||
|  | ||||
| namespace Service::Nvidia { | ||||
|  | ||||
| void NVDRV::Open(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::Open(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NVDRV, "called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     rb.Push(ResultSuccess); | ||||
| @@ -44,13 +44,13 @@ void NVDRV::Open(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(fd != INVALID_NVDRV_FD ? NvResult::Success : NvResult::FileOperationFailed); | ||||
| } | ||||
|  | ||||
| void NVDRV::ServiceError(Kernel::HLERequestContext& ctx, NvResult result) { | ||||
| void NVDRV::ServiceError(HLERequestContext& ctx, NvResult result) { | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(ResultSuccess); | ||||
|     rb.PushEnum(result); | ||||
| } | ||||
|  | ||||
| void NVDRV::Ioctl1(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::Ioctl1(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto fd = rp.Pop<DeviceFD>(); | ||||
|     const auto command = rp.PopRaw<Ioctl>(); | ||||
| @@ -76,7 +76,7 @@ void NVDRV::Ioctl1(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(nv_result); | ||||
| } | ||||
|  | ||||
| void NVDRV::Ioctl2(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::Ioctl2(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto fd = rp.Pop<DeviceFD>(); | ||||
|     const auto command = rp.PopRaw<Ioctl>(); | ||||
| @@ -103,7 +103,7 @@ void NVDRV::Ioctl2(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(nv_result); | ||||
| } | ||||
|  | ||||
| void NVDRV::Ioctl3(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::Ioctl3(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto fd = rp.Pop<DeviceFD>(); | ||||
|     const auto command = rp.PopRaw<Ioctl>(); | ||||
| @@ -131,7 +131,7 @@ void NVDRV::Ioctl3(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(nv_result); | ||||
| } | ||||
|  | ||||
| void NVDRV::Close(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::Close(HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_NVDRV, "called"); | ||||
|  | ||||
|     if (!is_initialized) { | ||||
| @@ -149,7 +149,7 @@ void NVDRV::Close(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(result); | ||||
| } | ||||
|  | ||||
| void NVDRV::Initialize(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::Initialize(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
|  | ||||
|     is_initialized = true; | ||||
| @@ -159,7 +159,7 @@ void NVDRV::Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(NvResult::Success); | ||||
| } | ||||
|  | ||||
| void NVDRV::QueryEvent(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::QueryEvent(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto fd = rp.Pop<DeviceFD>(); | ||||
|     const auto event_id = rp.Pop<u32>(); | ||||
| @@ -187,7 +187,7 @@ void NVDRV::QueryEvent(Kernel::HLERequestContext& ctx) { | ||||
|     } | ||||
| } | ||||
|  | ||||
| void NVDRV::SetAruid(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::SetAruid(HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     pid = rp.Pop<u64>(); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called, pid=0x{:X}", pid); | ||||
| @@ -197,14 +197,14 @@ void NVDRV::SetAruid(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(NvResult::Success); | ||||
| } | ||||
|  | ||||
| void NVDRV::SetGraphicsFirmwareMemoryMarginEnabled(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::SetGraphicsFirmwareMemoryMarginEnabled(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(ResultSuccess); | ||||
| } | ||||
|  | ||||
| void NVDRV::GetStatus(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::GetStatus(HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
| @@ -212,7 +212,7 @@ void NVDRV::GetStatus(Kernel::HLERequestContext& ctx) { | ||||
|     rb.PushEnum(NvResult::Success); | ||||
| } | ||||
|  | ||||
| void NVDRV::DumpGraphicsMemoryInfo(Kernel::HLERequestContext& ctx) { | ||||
| void NVDRV::DumpGraphicsMemoryInfo(HLERequestContext& ctx) { | ||||
|     // According to SwitchBrew, this has no inputs and no outputs, so effectively does nothing on | ||||
|     // retail hardware. | ||||
|     LOG_DEBUG(Service_NVDRV, "called"); | ||||
|   | ||||
| @@ -15,19 +15,19 @@ public: | ||||
|     ~NVDRV() override; | ||||
|  | ||||
| private: | ||||
|     void Open(Kernel::HLERequestContext& ctx); | ||||
|     void Ioctl1(Kernel::HLERequestContext& ctx); | ||||
|     void Ioctl2(Kernel::HLERequestContext& ctx); | ||||
|     void Ioctl3(Kernel::HLERequestContext& ctx); | ||||
|     void Close(Kernel::HLERequestContext& ctx); | ||||
|     void Initialize(Kernel::HLERequestContext& ctx); | ||||
|     void QueryEvent(Kernel::HLERequestContext& ctx); | ||||
|     void SetAruid(Kernel::HLERequestContext& ctx); | ||||
|     void SetGraphicsFirmwareMemoryMarginEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void GetStatus(Kernel::HLERequestContext& ctx); | ||||
|     void DumpGraphicsMemoryInfo(Kernel::HLERequestContext& ctx); | ||||
|     void Open(HLERequestContext& ctx); | ||||
|     void Ioctl1(HLERequestContext& ctx); | ||||
|     void Ioctl2(HLERequestContext& ctx); | ||||
|     void Ioctl3(HLERequestContext& ctx); | ||||
|     void Close(HLERequestContext& ctx); | ||||
|     void Initialize(HLERequestContext& ctx); | ||||
|     void QueryEvent(HLERequestContext& ctx); | ||||
|     void SetAruid(HLERequestContext& ctx); | ||||
|     void SetGraphicsFirmwareMemoryMarginEnabled(HLERequestContext& ctx); | ||||
|     void GetStatus(HLERequestContext& ctx); | ||||
|     void DumpGraphicsMemoryInfo(HLERequestContext& ctx); | ||||
|  | ||||
|     void ServiceError(Kernel::HLERequestContext& ctx, NvResult result); | ||||
|     void ServiceError(HLERequestContext& ctx, NvResult result); | ||||
|  | ||||
|     std::shared_ptr<Module> nvdrv; | ||||
|  | ||||
|   | ||||
| @@ -17,11 +17,11 @@ NVMEMP::NVMEMP(Core::System& system_) : ServiceFramework{system_, "nvmemp"} { | ||||
|  | ||||
| NVMEMP::~NVMEMP() = default; | ||||
|  | ||||
| void NVMEMP::Open(Kernel::HLERequestContext& ctx) { | ||||
| void NVMEMP::Open(HLERequestContext& ctx) { | ||||
|     UNIMPLEMENTED(); | ||||
| } | ||||
|  | ||||
| void NVMEMP::GetAruid(Kernel::HLERequestContext& ctx) { | ||||
| void NVMEMP::GetAruid(HLERequestContext& ctx) { | ||||
|     UNIMPLEMENTED(); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -17,8 +17,8 @@ public: | ||||
|     ~NVMEMP() override; | ||||
|  | ||||
| private: | ||||
|     void Open(Kernel::HLERequestContext& ctx); | ||||
|     void GetAruid(Kernel::HLERequestContext& ctx); | ||||
|     void Open(HLERequestContext& ctx); | ||||
|     void GetAruid(HLERequestContext& ctx); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::Nvidia | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	 Liam
					Liam