diff options
Diffstat (limited to 'src/core/hle/service')
| -rw-r--r-- | src/core/hle/service/nim/nim.cpp | 124 | ||||
| -rw-r--r-- | src/core/hle/service/nim/nim.h | 15 | ||||
| -rw-r--r-- | src/core/hle/service/service.cpp | 2 | 
3 files changed, 141 insertions, 0 deletions
| diff --git a/src/core/hle/service/nim/nim.cpp b/src/core/hle/service/nim/nim.cpp new file mode 100644 index 000000000..bd05b0a70 --- /dev/null +++ b/src/core/hle/service/nim/nim.cpp @@ -0,0 +1,124 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "core/hle/service/nim/nim.h" +#include "core/hle/service/service.h" +#include "core/hle/service/sm/sm.h" + +namespace Service::NIM { + +class NIM final : public ServiceFramework<NIM> { +public: +    explicit NIM() : ServiceFramework{"nim"} { +        // clang-format off +        static const FunctionInfo functions[] = { +            {0, nullptr, "CreateSystemUpdateTask"}, +            {1, nullptr, "DestroySystemUpdateTask"}, +            {2, nullptr, "ListSystemUpdateTask"}, +            {3, nullptr, "RequestSystemUpdateTaskRun"}, +            {4, nullptr, "GetSystemUpdateTaskInfo"}, +            {5, nullptr, "CommitSystemUpdateTask"}, +            {6, nullptr, "CreateNetworkInstallTask"}, +            {7, nullptr, "DestroyNetworkInstallTask"}, +            {8, nullptr, "ListNetworkInstallTask"}, +            {9, nullptr, "RequestNetworkInstallTaskRun"}, +            {10, nullptr, "GetNetworkInstallTaskInfo"}, +            {11, nullptr, "CommitNetworkInstallTask"}, +            {12, nullptr, "RequestLatestSystemUpdateMeta"}, +            {14, nullptr, "ListApplicationNetworkInstallTask"}, +            {15, nullptr, "ListNetworkInstallTaskContentMeta"}, +            {16, nullptr, "RequestLatestVersion"}, +            {17, nullptr, "SetNetworkInstallTaskAttribute"}, +            {18, nullptr, "AddNetworkInstallTaskContentMeta"}, +            {19, nullptr, "GetDownloadedSystemDataPath"}, +            {20, nullptr, "CalculateNetworkInstallTaskRequiredSize"}, +            {21, nullptr, "IsExFatDriverIncluded"}, +            {22, nullptr, "GetBackgroundDownloadStressTaskInfo"}, +            {23, nullptr, "RequestDeviceAuthenticationToken"}, +            {24, nullptr, "RequestGameCardRegistrationStatus"}, +            {25, nullptr, "RequestRegisterGameCard"}, +            {26, nullptr, "RequestRegisterNotificationToken"}, +            {27, nullptr, "RequestDownloadTaskList"}, +            {28, nullptr, "RequestApplicationControl"}, +            {29, nullptr, "RequestLatestApplicationControl"}, +            {30, nullptr, "RequestVersionList"}, +            {31, nullptr, "CreateApplyDeltaTask"}, +            {32, nullptr, "DestroyApplyDeltaTask"}, +            {33, nullptr, "ListApplicationApplyDeltaTask"}, +            {34, nullptr, "RequestApplyDeltaTaskRun"}, +            {35, nullptr, "GetApplyDeltaTaskInfo"}, +            {36, nullptr, "ListApplyDeltaTask"}, +            {37, nullptr, "CommitApplyDeltaTask"}, +            {38, nullptr, "CalculateApplyDeltaTaskRequiredSize"}, +            {39, nullptr, "PrepareShutdown"}, +            {40, nullptr, "ListApplyDeltaTask"}, +            {41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"}, +            {42, nullptr, "Unknown1"}, +            {43, nullptr, "Unknown2"}, +            {44, nullptr, "Unknown3"}, +            {45, nullptr, "Unknown4"}, +            {46, nullptr, "Unknown5"}, +        }; +        // clang-format on + +        RegisterHandlers(functions); +    } +}; + +class NIM_SHP final : public ServiceFramework<NIM_SHP> { +public: +    explicit NIM_SHP() : ServiceFramework{"nim:shp"} { +        // clang-format off +        static const FunctionInfo functions[] = { +            {0, nullptr, "RequestDeviceAuthenticationToken"}, +            {1, nullptr, "RequestCachedDeviceAuthenticationToken"}, +            {100, nullptr, "RequestRegisterDeviceAccount"}, +            {101, nullptr, "RequestUnregisterDeviceAccount"}, +            {102, nullptr, "RequestDeviceAccountStatus"}, +            {103, nullptr, "GetDeviceAccountInfo"}, +            {104, nullptr, "RequestDeviceRegistrationInfo"}, +            {105, nullptr, "RequestTransferDeviceAccount"}, +            {106, nullptr, "RequestSyncRegistration"}, +            {107, nullptr, "IsOwnDeviceId"}, +            {200, nullptr, "RequestRegisterNotificationToken"}, +            {300, nullptr, "RequestUnlinkDevice"}, +            {301, nullptr, "RequestUnlinkDeviceIntegrated"}, +            {302, nullptr, "RequestLinkDevice"}, +            {303, nullptr, "HasDeviceLink"}, +            {304, nullptr, "RequestUnlinkDeviceAll"}, +            {305, nullptr, "RequestCreateVirtualAccount"}, +            {306, nullptr, "RequestDeviceLinkStatus"}, +            {400, nullptr, "GetAccountByVirtualAccount"}, +            {500, nullptr, "RequestSyncTicket"}, +            {501, nullptr, "RequestDownloadTicket"}, +            {502, nullptr, "RequestDownloadTicketForPrepurchasedContents"}, +        }; +        // clang-format on + +        RegisterHandlers(functions); +    } +}; + +class NTC final : public ServiceFramework<NTC> { +public: +    explicit NTC() : ServiceFramework{"ntc"} { +        // clang-format off +        static const FunctionInfo functions[] = { +            {0, nullptr, "OpenEnsureNetworkClockAvailabilityService"}, +            {100, nullptr, "SuspendAutonomicTimeCorrection"}, +            {101, nullptr, "ResumeAutonomicTimeCorrection"}, +        }; +        // clang-format on + +        RegisterHandlers(functions); +    } +}; + +void InstallInterfaces(SM::ServiceManager& sm) { +    std::make_shared<NIM>()->InstallAsService(sm); +    std::make_shared<NIM_SHP>()->InstallAsService(sm); +    std::make_shared<NTC>()->InstallAsService(sm); +} + +} // namespace Service::NIM diff --git a/src/core/hle/service/nim/nim.h b/src/core/hle/service/nim/nim.h new file mode 100644 index 000000000..2a2a92df0 --- /dev/null +++ b/src/core/hle/service/nim/nim.h @@ -0,0 +1,15 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +namespace Service::SM { +class ServiceManager; +} + +namespace Service::NIM { + +void InstallInterfaces(SM::ServiceManager& sm); + +} // namespace Service::NIM diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 1e24d33e2..e167ea827 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp @@ -34,6 +34,7 @@  #include "core/hle/service/mm/mm_u.h"  #include "core/hle/service/nfp/nfp.h"  #include "core/hle/service/nifm/nifm.h" +#include "core/hle/service/nim/nim.h"  #include "core/hle/service/ns/ns.h"  #include "core/hle/service/nvdrv/nvdrv.h"  #include "core/hle/service/pctl/pctl.h" @@ -206,6 +207,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) {      MM::InstallInterfaces(*sm);      NFP::InstallInterfaces(*sm);      NIFM::InstallInterfaces(*sm); +    NIM::InstallInterfaces(*sm);      NS::InstallInterfaces(*sm);      Nvidia::InstallInterfaces(*sm);      PCTL::InstallInterfaces(*sm); | 
