diff options
Diffstat (limited to 'src/core/hle/service/nim/nim.cpp')
-rw-r--r-- | src/core/hle/service/nim/nim.cpp | 158 |
1 files changed, 151 insertions, 7 deletions
diff --git a/src/core/hle/service/nim/nim.cpp b/src/core/hle/service/nim/nim.cpp index e85f123e2..11aa74828 100644 --- a/src/core/hle/service/nim/nim.cpp +++ b/src/core/hle/service/nim/nim.cpp @@ -15,6 +15,66 @@ namespace Service::NIM { +class IShopServiceAsync final : public ServiceFramework<IShopServiceAsync> { +public: + IShopServiceAsync() : ServiceFramework("IShopServiceAsync") { + // clang-format off + static const FunctionInfo functions[] = { + {0, nullptr, "Cancel"}, + {1, nullptr, "GetSize"}, + {2, nullptr, "Read"}, + {3, nullptr, "GetErrorCode"}, + {4, nullptr, "Request"}, + {5, nullptr, "Prepare"}, + }; + // clang-format on + + RegisterHandlers(functions); + } +}; + +class IShopServiceAccessor final : public ServiceFramework<IShopServiceAccessor> { +public: + IShopServiceAccessor() : ServiceFramework("IShopServiceAccessor") { + // clang-format off + static const FunctionInfo functions[] = { + {0, &IShopServiceAccessor::CreateAsyncInterface, "CreateAsyncInterface"}, + }; + // clang-format on + + RegisterHandlers(functions); + } + +private: + void CreateAsyncInterface(Kernel::HLERequestContext& ctx) { + LOG_WARNING(Service_NIM, "(STUBBED) called"); + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<IShopServiceAsync>(); + } +}; + +class IShopServiceAccessServer final : public ServiceFramework<IShopServiceAccessServer> { +public: + IShopServiceAccessServer() : ServiceFramework("IShopServiceAccessServer") { + // clang-format off + static const FunctionInfo functions[] = { + {0, &IShopServiceAccessServer::CreateAccessorInterface, "CreateAccessorInterface"}, + }; + // clang-format on + + RegisterHandlers(functions); + } + +private: + void CreateAccessorInterface(Kernel::HLERequestContext& ctx) { + LOG_WARNING(Service_NIM, "(STUBBED) called"); + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<IShopServiceAccessor>(); + } +}; + class NIM final : public ServiceFramework<NIM> { public: explicit NIM() : ServiceFramework{"nim"} { @@ -61,11 +121,83 @@ public: {39, nullptr, "PrepareShutdown"}, {40, nullptr, "ListApplyDeltaTask"}, {41, nullptr, "ClearNotEnoughSpaceStateOfApplyDeltaTask"}, - {42, nullptr, "Unknown1"}, - {43, nullptr, "Unknown2"}, - {44, nullptr, "Unknown3"}, - {45, nullptr, "Unknown4"}, - {46, nullptr, "Unknown5"}, + {42, nullptr, "Unknown42"}, + {43, nullptr, "Unknown43"}, + {44, nullptr, "Unknown44"}, + {45, nullptr, "Unknown45"}, + {46, nullptr, "Unknown46"}, + {47, nullptr, "Unknown47"}, + {48, nullptr, "Unknown48"}, + {49, nullptr, "Unknown49"}, + {50, nullptr, "Unknown50"}, + {51, nullptr, "Unknown51"}, + {52, nullptr, "Unknown52"}, + {53, nullptr, "Unknown53"}, + {54, nullptr, "Unknown54"}, + {55, nullptr, "Unknown55"}, + {56, nullptr, "Unknown56"}, + {57, nullptr, "Unknown57"}, + {58, nullptr, "Unknown58"}, + {59, nullptr, "Unknown59"}, + {60, nullptr, "Unknown60"}, + {61, nullptr, "Unknown61"}, + {62, nullptr, "Unknown62"}, + {63, nullptr, "Unknown63"}, + {64, nullptr, "Unknown64"}, + {65, nullptr, "Unknown65"}, + {66, nullptr, "Unknown66"}, + {67, nullptr, "Unknown67"}, + {68, nullptr, "Unknown68"}, + {69, nullptr, "Unknown69"}, + {70, nullptr, "Unknown70"}, + {71, nullptr, "Unknown71"}, + {72, nullptr, "Unknown72"}, + {73, nullptr, "Unknown73"}, + {74, nullptr, "Unknown74"}, + {75, nullptr, "Unknown75"}, + {76, nullptr, "Unknown76"}, + {77, nullptr, "Unknown77"}, + {78, nullptr, "Unknown78"}, + {79, nullptr, "Unknown79"}, + {80, nullptr, "Unknown80"}, + {81, nullptr, "Unknown81"}, + {82, nullptr, "Unknown82"}, + {83, nullptr, "Unknown83"}, + {84, nullptr, "Unknown84"}, + {85, nullptr, "Unknown85"}, + {86, nullptr, "Unknown86"}, + {87, nullptr, "Unknown87"}, + {88, nullptr, "Unknown88"}, + {89, nullptr, "Unknown89"}, + {90, nullptr, "Unknown90"}, + {91, nullptr, "Unknown91"}, + {92, nullptr, "Unknown92"}, + {93, nullptr, "Unknown93"}, + {94, nullptr, "Unknown94"}, + {95, nullptr, "Unknown95"}, + {96, nullptr, "Unknown96"}, + {97, nullptr, "Unknown97"}, + {98, nullptr, "Unknown98"}, + {99, nullptr, "Unknown99"}, + {100, nullptr, "Unknown100"}, + {101, nullptr, "Unknown101"}, + {102, nullptr, "Unknown102"}, + {103, nullptr, "Unknown103"}, + {104, nullptr, "Unknown104"}, + {105, nullptr, "Unknown105"}, + {106, nullptr, "Unknown106"}, + {107, nullptr, "Unknown107"}, + {108, nullptr, "Unknown108"}, + {109, nullptr, "Unknown109"}, + {110, nullptr, "Unknown110"}, + {111, nullptr, "Unknown111"}, + {112, nullptr, "Unknown112"}, + {113, nullptr, "Unknown113"}, + {114, nullptr, "Unknown114"}, + {115, nullptr, "Unknown115"}, + {116, nullptr, "Unknown116"}, + {117, nullptr, "Unknown117"}, + {118, nullptr, "Unknown118"}, }; // clang-format on @@ -78,15 +210,24 @@ public: explicit NIM_ECA() : ServiceFramework{"nim:eca"} { // clang-format off static const FunctionInfo functions[] = { - {0, nullptr, "CreateServerInterface"}, + {0, &NIM_ECA::CreateServerInterface, "CreateServerInterface"}, {1, nullptr, "RefreshDebugAvailability"}, {2, nullptr, "ClearDebugResponse"}, {3, nullptr, "RegisterDebugResponse"}, + {4, nullptr, "IsLargeResourceAvailable"}, }; // clang-format on RegisterHandlers(functions); } + +private: + void CreateServerInterface(Kernel::HLERequestContext& ctx) { + LOG_WARNING(Service_NIM, "(STUBBED) called"); + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface<IShopServiceAccessServer>(); + } }; class NIM_SHP final : public ServiceFramework<NIM_SHP> { @@ -96,6 +237,8 @@ public: static const FunctionInfo functions[] = { {0, nullptr, "RequestDeviceAuthenticationToken"}, {1, nullptr, "RequestCachedDeviceAuthenticationToken"}, + {2, nullptr, "RequestEdgeToken"}, + {3, nullptr, "RequestCachedEdgeToken"}, {100, nullptr, "RequestRegisterDeviceAccount"}, {101, nullptr, "RequestUnregisterDeviceAccount"}, {102, nullptr, "RequestDeviceAccountStatus"}, @@ -113,7 +256,8 @@ public: {305, nullptr, "RequestCreateVirtualAccount"}, {306, nullptr, "RequestDeviceLinkStatus"}, {400, nullptr, "GetAccountByVirtualAccount"}, - {500, nullptr, "RequestSyncTicket"}, + {401, nullptr, "GetVirtualAccount"}, + {500, nullptr, "RequestSyncTicketLegacy"}, {501, nullptr, "RequestDownloadTicket"}, {502, nullptr, "RequestDownloadTicketForPrepurchasedContents"}, {503, nullptr, "RequestSyncTicket"}, |