Просмотр исходного кода

service: am: Fix wrong interface

Narr the Reg 3 лет назад
Родитель
Сommit
dd1cbd9c56
3 измененных файлов с 55 добавлено и 3 удалено
  1. 44 0
      src/core/hle/service/am/am.cpp
  2. 6 0
      src/core/hle/service/am/am.h
  3. 5 3
      src/core/hle/service/am/applet_ae.cpp

+ 44 - 0
src/core/hle/service/am/am.cpp

@@ -1317,6 +1317,50 @@ void ILibraryAppletCreator::CreateHandleStorage(HLERequestContext& ctx) {
     rb.PushIpcInterface<IStorage>(system, std::move(memory));
     rb.PushIpcInterface<IStorage>(system, std::move(memory));
 }
 }
 
 
+ILibraryAppletSelfAccessor::ILibraryAppletSelfAccessor(Core::System& system_)
+    : ServiceFramework{system_, "ILibraryAppletSelfAccessor"} {
+    static const FunctionInfo functions[] = {
+        {0, nullptr, "PopInData"},
+        {1, nullptr, "PushOutData"},
+        {2, nullptr, "PopInteractiveInData"},
+        {3, nullptr, "PushInteractiveOutData"},
+        {5, nullptr, "GetPopInDataEvent"},
+        {6, nullptr, "GetPopInteractiveInDataEvent"},
+        {10, nullptr, "ExitProcessAndReturn"},
+        {11, nullptr, "GetLibraryAppletInfo"},
+        {12, nullptr, "GetMainAppletIdentityInfo"},
+        {13, nullptr, "CanUseApplicationCore"},
+        {14, nullptr, "GetCallerAppletIdentityInfo"},
+        {15, nullptr, "GetMainAppletApplicationControlProperty"},
+        {16, nullptr, "GetMainAppletStorageId"},
+        {17, nullptr, "GetCallerAppletIdentityInfoStack"},
+        {18, nullptr, "GetNextReturnDestinationAppletIdentityInfo"},
+        {19, nullptr, "GetDesirableKeyboardLayout"},
+        {20, nullptr, "PopExtraStorage"},
+        {25, nullptr, "GetPopExtraStorageEvent"},
+        {30, nullptr, "UnpopInData"},
+        {31, nullptr, "UnpopExtraStorage"},
+        {40, nullptr, "GetIndirectLayerProducerHandle"},
+        {50, nullptr, "ReportVisibleError"},
+        {51, nullptr, "ReportVisibleErrorWithErrorContext"},
+        {60, nullptr, "GetMainAppletApplicationDesiredLanguage"},
+        {70, nullptr, "GetCurrentApplicationId"},
+        {80, nullptr, "RequestExitToSelf"},
+        {90, nullptr, "CreateApplicationAndPushAndRequestToLaunch"},
+        {100, nullptr, "CreateGameMovieTrimmer"},
+        {101, nullptr, "ReserveResourceForMovieOperation"},
+        {102, nullptr, "UnreserveResourceForMovieOperation"},
+        {110, nullptr, "GetMainAppletAvailableUsers"},
+        {120, nullptr, "GetLaunchStorageInfoForDebug"},
+        {130, nullptr, "GetGpuErrorDetectedSystemEvent"},
+        {140, nullptr, "SetApplicationMemoryReservation"},
+        {150, nullptr, "ShouldSetGpuTimeSliceManually"},
+    };
+    RegisterHandlers(functions);
+}
+
+ILibraryAppletSelfAccessor::~ILibraryAppletSelfAccessor() = default;
+
 IApplicationFunctions::IApplicationFunctions(Core::System& system_)
 IApplicationFunctions::IApplicationFunctions(Core::System& system_)
     : ServiceFramework{system_, "IApplicationFunctions"}, service_context{system,
     : ServiceFramework{system_, "IApplicationFunctions"}, service_context{system,
                                                                           "IApplicationFunctions"} {
                                                                           "IApplicationFunctions"} {

+ 6 - 0
src/core/hle/service/am/am.h

@@ -314,6 +314,12 @@ private:
     void CreateHandleStorage(HLERequestContext& ctx);
     void CreateHandleStorage(HLERequestContext& ctx);
 };
 };
 
 
+class ILibraryAppletSelfAccessor final : public ServiceFramework<ILibraryAppletSelfAccessor> {
+public:
+    explicit ILibraryAppletSelfAccessor(Core::System& system_);
+    ~ILibraryAppletSelfAccessor() override;
+};
+
 class IApplicationFunctions final : public ServiceFramework<IApplicationFunctions> {
 class IApplicationFunctions final : public ServiceFramework<IApplicationFunctions> {
 public:
 public:
     explicit IApplicationFunctions(Core::System& system_);
     explicit IApplicationFunctions(Core::System& system_);

+ 5 - 3
src/core/hle/service/am/applet_ae.cpp

@@ -26,8 +26,10 @@ public:
             {4, &ILibraryAppletProxy::GetDisplayController, "GetDisplayController"},
             {4, &ILibraryAppletProxy::GetDisplayController, "GetDisplayController"},
             {10, &ILibraryAppletProxy::GetProcessWindingController, "GetProcessWindingController"},
             {10, &ILibraryAppletProxy::GetProcessWindingController, "GetProcessWindingController"},
             {11, &ILibraryAppletProxy::GetLibraryAppletCreator, "GetLibraryAppletCreator"},
             {11, &ILibraryAppletProxy::GetLibraryAppletCreator, "GetLibraryAppletCreator"},
-            {20, &ILibraryAppletProxy::GetApplicationFunctions, "GetApplicationFunctions"},
+            {20, &ILibraryAppletProxy::OpenLibraryAppletSelfAccessor, "OpenLibraryAppletSelfAccessor"},
             {21, nullptr, "GetAppletCommonFunctions"},
             {21, nullptr, "GetAppletCommonFunctions"},
+            {22, nullptr, "GetHomeMenuFunctions"},
+            {23, nullptr, "GetGlobalStateController"},
             {1000, &ILibraryAppletProxy::GetDebugFunctions, "GetDebugFunctions"},
             {1000, &ILibraryAppletProxy::GetDebugFunctions, "GetDebugFunctions"},
         };
         };
         // clang-format on
         // clang-format on
@@ -100,12 +102,12 @@ private:
         rb.PushIpcInterface<ILibraryAppletCreator>(system);
         rb.PushIpcInterface<ILibraryAppletCreator>(system);
     }
     }
 
 
-    void GetApplicationFunctions(HLERequestContext& ctx) {
+    void OpenLibraryAppletSelfAccessor(HLERequestContext& ctx) {
         LOG_DEBUG(Service_AM, "called");
         LOG_DEBUG(Service_AM, "called");
 
 
         IPC::ResponseBuilder rb{ctx, 2, 0, 1};
         IPC::ResponseBuilder rb{ctx, 2, 0, 1};
         rb.Push(ResultSuccess);
         rb.Push(ResultSuccess);
-        rb.PushIpcInterface<IApplicationFunctions>(system);
+        rb.PushIpcInterface<ILibraryAppletSelfAccessor>(system);
     }
     }
 
 
     Nvnflinger::Nvnflinger& nvnflinger;
     Nvnflinger::Nvnflinger& nvnflinger;