diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/core/hle/service/am/am.cpp | 64 | ||||
| -rw-r--r-- | src/core/hle/service/am/applet_ae.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/am/applet_oe.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/am/idle.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/am/tcap.cpp | 23 | ||||
| -rw-r--r-- | src/core/hle/service/am/tcap.h | 17 | ||||
| -rw-r--r-- | src/core/hle/service/hid/hid.cpp | 1 | ||||
| -rw-r--r-- | src/core/hle/service/lbl/lbl.cpp | 56 | ||||
| -rw-r--r-- | src/core/hle/service/npns/npns.cpp | 88 | ||||
| -rw-r--r-- | src/core/hle/service/npns/npns.h | 15 | ||||
| -rw-r--r-- | src/core/hle/service/prepo/prepo.cpp | 21 | ||||
| -rw-r--r-- | src/core/hle/service/service.cpp | 6 |
13 files changed, 255 insertions, 53 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 4755ec822..9b1cfae42 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -156,6 +156,8 @@ add_library(core STATIC | |||
| 156 | hle/service/am/omm.h | 156 | hle/service/am/omm.h |
| 157 | hle/service/am/spsm.cpp | 157 | hle/service/am/spsm.cpp |
| 158 | hle/service/am/spsm.h | 158 | hle/service/am/spsm.h |
| 159 | hle/service/am/tcap.cpp | ||
| 160 | hle/service/am/tcap.h | ||
| 159 | hle/service/aoc/aoc_u.cpp | 161 | hle/service/aoc/aoc_u.cpp |
| 160 | hle/service/aoc/aoc_u.h | 162 | hle/service/aoc/aoc_u.h |
| 161 | hle/service/apm/apm.cpp | 163 | hle/service/apm/apm.cpp |
| @@ -280,6 +282,8 @@ add_library(core STATIC | |||
| 280 | hle/service/nifm/nifm.h | 282 | hle/service/nifm/nifm.h |
| 281 | hle/service/nim/nim.cpp | 283 | hle/service/nim/nim.cpp |
| 282 | hle/service/nim/nim.h | 284 | hle/service/nim/nim.h |
| 285 | hle/service/npns/npns.cpp | ||
| 286 | hle/service/npns/npns.h | ||
| 283 | hle/service/ns/ns.cpp | 287 | hle/service/ns/ns.cpp |
| 284 | hle/service/ns/ns.h | 288 | hle/service/ns/ns.h |
| 285 | hle/service/ns/pl_u.cpp | 289 | hle/service/ns/pl_u.cpp |
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 4d1f83170..ecf72ae24 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include "core/hle/service/am/idle.h" | 15 | #include "core/hle/service/am/idle.h" |
| 16 | #include "core/hle/service/am/omm.h" | 16 | #include "core/hle/service/am/omm.h" |
| 17 | #include "core/hle/service/am/spsm.h" | 17 | #include "core/hle/service/am/spsm.h" |
| 18 | #include "core/hle/service/am/tcap.h" | ||
| 18 | #include "core/hle/service/apm/apm.h" | 19 | #include "core/hle/service/apm/apm.h" |
| 19 | #include "core/hle/service/filesystem/filesystem.h" | 20 | #include "core/hle/service/filesystem/filesystem.h" |
| 20 | #include "core/hle/service/nvflinger/nvflinger.h" | 21 | #include "core/hle/service/nvflinger/nvflinger.h" |
| @@ -26,13 +27,18 @@ | |||
| 26 | namespace Service::AM { | 27 | namespace Service::AM { |
| 27 | 28 | ||
| 28 | IWindowController::IWindowController() : ServiceFramework("IWindowController") { | 29 | IWindowController::IWindowController() : ServiceFramework("IWindowController") { |
| 30 | // clang-format off | ||
| 29 | static const FunctionInfo functions[] = { | 31 | static const FunctionInfo functions[] = { |
| 30 | {0, nullptr, "CreateWindow"}, | 32 | {0, nullptr, "CreateWindow"}, |
| 31 | {1, &IWindowController::GetAppletResourceUserId, "GetAppletResourceUserId"}, | 33 | {1, &IWindowController::GetAppletResourceUserId, "GetAppletResourceUserId"}, |
| 32 | {10, &IWindowController::AcquireForegroundRights, "AcquireForegroundRights"}, | 34 | {10, &IWindowController::AcquireForegroundRights, "AcquireForegroundRights"}, |
| 33 | {11, nullptr, "ReleaseForegroundRights"}, | 35 | {11, nullptr, "ReleaseForegroundRights"}, |
| 34 | {12, nullptr, "RejectToChangeIntoBackground"}, | 36 | {12, nullptr, "RejectToChangeIntoBackground"}, |
| 37 | {20, nullptr, "SetAppletWindowVisibility"}, | ||
| 38 | {21, nullptr, "SetAppletGpuTimeSlice"}, | ||
| 35 | }; | 39 | }; |
| 40 | // clang-format on | ||
| 41 | |||
| 36 | RegisterHandlers(functions); | 42 | RegisterHandlers(functions); |
| 37 | } | 43 | } |
| 38 | 44 | ||
| @@ -87,6 +93,7 @@ void IAudioController::GetLibraryAppletExpectedMasterVolume(Kernel::HLERequestCo | |||
| 87 | } | 93 | } |
| 88 | 94 | ||
| 89 | IDisplayController::IDisplayController() : ServiceFramework("IDisplayController") { | 95 | IDisplayController::IDisplayController() : ServiceFramework("IDisplayController") { |
| 96 | // clang-format off | ||
| 90 | static const FunctionInfo functions[] = { | 97 | static const FunctionInfo functions[] = { |
| 91 | {0, nullptr, "GetLastForegroundCaptureImage"}, | 98 | {0, nullptr, "GetLastForegroundCaptureImage"}, |
| 92 | {1, nullptr, "UpdateLastForegroundCaptureImage"}, | 99 | {1, nullptr, "UpdateLastForegroundCaptureImage"}, |
| @@ -117,7 +124,11 @@ IDisplayController::IDisplayController() : ServiceFramework("IDisplayController" | |||
| 117 | {25, nullptr, "ReleaseLastForegroundCaptureSharedBuffer"}, | 124 | {25, nullptr, "ReleaseLastForegroundCaptureSharedBuffer"}, |
| 118 | {26, nullptr, "AcquireCallerAppletCaptureSharedBuffer"}, | 125 | {26, nullptr, "AcquireCallerAppletCaptureSharedBuffer"}, |
| 119 | {27, nullptr, "ReleaseCallerAppletCaptureSharedBuffer"}, | 126 | {27, nullptr, "ReleaseCallerAppletCaptureSharedBuffer"}, |
| 127 | // 6.0.0+ | ||
| 128 | {28, nullptr, "TakeScreenShotOfOwnLayerEx"}, | ||
| 120 | }; | 129 | }; |
| 130 | // clang-format on | ||
| 131 | |||
| 121 | RegisterHandlers(functions); | 132 | RegisterHandlers(functions); |
| 122 | } | 133 | } |
| 123 | 134 | ||
| @@ -128,6 +139,7 @@ IDebugFunctions::~IDebugFunctions() = default; | |||
| 128 | 139 | ||
| 129 | ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) | 140 | ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) |
| 130 | : ServiceFramework("ISelfController"), nvflinger(std::move(nvflinger)) { | 141 | : ServiceFramework("ISelfController"), nvflinger(std::move(nvflinger)) { |
| 142 | // clang-format off | ||
| 131 | static const FunctionInfo functions[] = { | 143 | static const FunctionInfo functions[] = { |
| 132 | {0, nullptr, "Exit"}, | 144 | {0, nullptr, "Exit"}, |
| 133 | {1, &ISelfController::LockExit, "LockExit"}, | 145 | {1, &ISelfController::LockExit, "LockExit"}, |
| @@ -136,10 +148,8 @@ ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger | |||
| 136 | {4, nullptr, "LeaveFatalSection"}, | 148 | {4, nullptr, "LeaveFatalSection"}, |
| 137 | {9, &ISelfController::GetLibraryAppletLaunchableEvent, "GetLibraryAppletLaunchableEvent"}, | 149 | {9, &ISelfController::GetLibraryAppletLaunchableEvent, "GetLibraryAppletLaunchableEvent"}, |
| 138 | {10, &ISelfController::SetScreenShotPermission, "SetScreenShotPermission"}, | 150 | {10, &ISelfController::SetScreenShotPermission, "SetScreenShotPermission"}, |
| 139 | {11, &ISelfController::SetOperationModeChangedNotification, | 151 | {11, &ISelfController::SetOperationModeChangedNotification, "SetOperationModeChangedNotification"}, |
| 140 | "SetOperationModeChangedNotification"}, | 152 | {12, &ISelfController::SetPerformanceModeChangedNotification, "SetPerformanceModeChangedNotification"}, |
| 141 | {12, &ISelfController::SetPerformanceModeChangedNotification, | ||
| 142 | "SetPerformanceModeChangedNotification"}, | ||
| 143 | {13, &ISelfController::SetFocusHandlingMode, "SetFocusHandlingMode"}, | 153 | {13, &ISelfController::SetFocusHandlingMode, "SetFocusHandlingMode"}, |
| 144 | {14, &ISelfController::SetRestartMessageEnabled, "SetRestartMessageEnabled"}, | 154 | {14, &ISelfController::SetRestartMessageEnabled, "SetRestartMessageEnabled"}, |
| 145 | {15, nullptr, "SetScreenShotAppletIdentityInfo"}, | 155 | {15, nullptr, "SetScreenShotAppletIdentityInfo"}, |
| @@ -165,7 +175,12 @@ ISelfController::ISelfController(std::shared_ptr<NVFlinger::NVFlinger> nvflinger | |||
| 165 | {69, nullptr, "IsAutoSleepDisabled"}, | 175 | {69, nullptr, "IsAutoSleepDisabled"}, |
| 166 | {70, nullptr, "ReportMultimediaError"}, | 176 | {70, nullptr, "ReportMultimediaError"}, |
| 167 | {80, nullptr, "SetWirelessPriorityMode"}, | 177 | {80, nullptr, "SetWirelessPriorityMode"}, |
| 178 | {90, nullptr, "GetAccumulatedSuspendedTickValue"}, | ||
| 179 | {91, nullptr, "GetAccumulatedSuspendedTickChangedEvent"}, | ||
| 180 | {1000, nullptr, "GetDebugStorageChannel"}, | ||
| 168 | }; | 181 | }; |
| 182 | // clang-format on | ||
| 183 | |||
| 169 | RegisterHandlers(functions); | 184 | RegisterHandlers(functions); |
| 170 | 185 | ||
| 171 | auto& kernel = Core::System::GetInstance().Kernel(); | 186 | auto& kernel = Core::System::GetInstance().Kernel(); |
| @@ -312,6 +327,7 @@ void ISelfController::GetIdleTimeDetectionExtension(Kernel::HLERequestContext& c | |||
| 312 | } | 327 | } |
| 313 | 328 | ||
| 314 | ICommonStateGetter::ICommonStateGetter() : ServiceFramework("ICommonStateGetter") { | 329 | ICommonStateGetter::ICommonStateGetter() : ServiceFramework("ICommonStateGetter") { |
| 330 | // clang-format off | ||
| 315 | static const FunctionInfo functions[] = { | 331 | static const FunctionInfo functions[] = { |
| 316 | {0, &ICommonStateGetter::GetEventHandle, "GetEventHandle"}, | 332 | {0, &ICommonStateGetter::GetEventHandle, "GetEventHandle"}, |
| 317 | {1, &ICommonStateGetter::ReceiveMessage, "ReceiveMessage"}, | 333 | {1, &ICommonStateGetter::ReceiveMessage, "ReceiveMessage"}, |
| @@ -336,11 +352,12 @@ ICommonStateGetter::ICommonStateGetter() : ServiceFramework("ICommonStateGetter" | |||
| 336 | {52, nullptr, "SwitchLcdBacklight"}, | 352 | {52, nullptr, "SwitchLcdBacklight"}, |
| 337 | {55, nullptr, "IsInControllerFirmwareUpdateSection"}, | 353 | {55, nullptr, "IsInControllerFirmwareUpdateSection"}, |
| 338 | {60, &ICommonStateGetter::GetDefaultDisplayResolution, "GetDefaultDisplayResolution"}, | 354 | {60, &ICommonStateGetter::GetDefaultDisplayResolution, "GetDefaultDisplayResolution"}, |
| 339 | {61, &ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent, | 355 | {61, &ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent, "GetDefaultDisplayResolutionChangeEvent"}, |
| 340 | "GetDefaultDisplayResolutionChangeEvent"}, | ||
| 341 | {62, nullptr, "GetHdcpAuthenticationState"}, | 356 | {62, nullptr, "GetHdcpAuthenticationState"}, |
| 342 | {63, nullptr, "GetHdcpAuthenticationStateChangeEvent"}, | 357 | {63, nullptr, "GetHdcpAuthenticationStateChangeEvent"}, |
| 343 | }; | 358 | }; |
| 359 | // clang-format on | ||
| 360 | |||
| 344 | RegisterHandlers(functions); | 361 | RegisterHandlers(functions); |
| 345 | 362 | ||
| 346 | auto& kernel = Core::System::GetInstance().Kernel(); | 363 | auto& kernel = Core::System::GetInstance().Kernel(); |
| @@ -432,11 +449,14 @@ class IStorageAccessor final : public ServiceFramework<IStorageAccessor> { | |||
| 432 | public: | 449 | public: |
| 433 | explicit IStorageAccessor(std::vector<u8> buffer) | 450 | explicit IStorageAccessor(std::vector<u8> buffer) |
| 434 | : ServiceFramework("IStorageAccessor"), buffer(std::move(buffer)) { | 451 | : ServiceFramework("IStorageAccessor"), buffer(std::move(buffer)) { |
| 452 | // clang-format off | ||
| 435 | static const FunctionInfo functions[] = { | 453 | static const FunctionInfo functions[] = { |
| 436 | {0, &IStorageAccessor::GetSize, "GetSize"}, | 454 | {0, &IStorageAccessor::GetSize, "GetSize"}, |
| 437 | {10, &IStorageAccessor::Write, "Write"}, | 455 | {10, &IStorageAccessor::Write, "Write"}, |
| 438 | {11, &IStorageAccessor::Read, "Read"}, | 456 | {11, &IStorageAccessor::Read, "Read"}, |
| 439 | }; | 457 | }; |
| 458 | // clang-format on | ||
| 459 | |||
| 440 | RegisterHandlers(functions); | 460 | RegisterHandlers(functions); |
| 441 | } | 461 | } |
| 442 | 462 | ||
| @@ -489,10 +509,13 @@ class IStorage final : public ServiceFramework<IStorage> { | |||
| 489 | public: | 509 | public: |
| 490 | explicit IStorage(std::vector<u8> buffer) | 510 | explicit IStorage(std::vector<u8> buffer) |
| 491 | : ServiceFramework("IStorage"), buffer(std::move(buffer)) { | 511 | : ServiceFramework("IStorage"), buffer(std::move(buffer)) { |
| 512 | // clang-format off | ||
| 492 | static const FunctionInfo functions[] = { | 513 | static const FunctionInfo functions[] = { |
| 493 | {0, &IStorage::Open, "Open"}, | 514 | {0, &IStorage::Open, "Open"}, |
| 494 | {1, nullptr, "OpenTransferStorage"}, | 515 | {1, nullptr, "OpenTransferStorage"}, |
| 495 | }; | 516 | }; |
| 517 | // clang-format on | ||
| 518 | |||
| 496 | RegisterHandlers(functions); | 519 | RegisterHandlers(functions); |
| 497 | } | 520 | } |
| 498 | 521 | ||
| @@ -512,6 +535,7 @@ private: | |||
| 512 | class ILibraryAppletAccessor final : public ServiceFramework<ILibraryAppletAccessor> { | 535 | class ILibraryAppletAccessor final : public ServiceFramework<ILibraryAppletAccessor> { |
| 513 | public: | 536 | public: |
| 514 | explicit ILibraryAppletAccessor() : ServiceFramework("ILibraryAppletAccessor") { | 537 | explicit ILibraryAppletAccessor() : ServiceFramework("ILibraryAppletAccessor") { |
| 538 | // clang-format off | ||
| 515 | static const FunctionInfo functions[] = { | 539 | static const FunctionInfo functions[] = { |
| 516 | {0, &ILibraryAppletAccessor::GetAppletStateChangedEvent, "GetAppletStateChangedEvent"}, | 540 | {0, &ILibraryAppletAccessor::GetAppletStateChangedEvent, "GetAppletStateChangedEvent"}, |
| 517 | {1, nullptr, "IsCompleted"}, | 541 | {1, nullptr, "IsCompleted"}, |
| @@ -532,6 +556,8 @@ public: | |||
| 532 | {150, nullptr, "RequestForAppletToGetForeground"}, | 556 | {150, nullptr, "RequestForAppletToGetForeground"}, |
| 533 | {160, nullptr, "GetIndirectLayerConsumerHandle"}, | 557 | {160, nullptr, "GetIndirectLayerConsumerHandle"}, |
| 534 | }; | 558 | }; |
| 559 | // clang-format on | ||
| 560 | |||
| 535 | RegisterHandlers(functions); | 561 | RegisterHandlers(functions); |
| 536 | 562 | ||
| 537 | auto& kernel = Core::System::GetInstance().Kernel(); | 563 | auto& kernel = Core::System::GetInstance().Kernel(); |
| @@ -624,13 +650,13 @@ void ILibraryAppletCreator::CreateStorage(Kernel::HLERequestContext& ctx) { | |||
| 624 | } | 650 | } |
| 625 | 651 | ||
| 626 | IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationFunctions") { | 652 | IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationFunctions") { |
| 653 | // clang-format off | ||
| 627 | static const FunctionInfo functions[] = { | 654 | static const FunctionInfo functions[] = { |
| 628 | {1, &IApplicationFunctions::PopLaunchParameter, "PopLaunchParameter"}, | 655 | {1, &IApplicationFunctions::PopLaunchParameter, "PopLaunchParameter"}, |
| 629 | {10, nullptr, "CreateApplicationAndPushAndRequestToStart"}, | 656 | {10, nullptr, "CreateApplicationAndPushAndRequestToStart"}, |
| 630 | {11, nullptr, "CreateApplicationAndPushAndRequestToStartForQuest"}, | 657 | {11, nullptr, "CreateApplicationAndPushAndRequestToStartForQuest"}, |
| 631 | {12, nullptr, "CreateApplicationAndRequestToStart"}, | 658 | {12, nullptr, "CreateApplicationAndRequestToStart"}, |
| 632 | {13, &IApplicationFunctions::CreateApplicationAndRequestToStartForQuest, | 659 | {13, &IApplicationFunctions::CreateApplicationAndRequestToStartForQuest, "CreateApplicationAndRequestToStartForQuest"}, |
| 633 | "CreateApplicationAndRequestToStartForQuest"}, | ||
| 634 | {20, &IApplicationFunctions::EnsureSaveData, "EnsureSaveData"}, | 660 | {20, &IApplicationFunctions::EnsureSaveData, "EnsureSaveData"}, |
| 635 | {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"}, | 661 | {21, &IApplicationFunctions::GetDesiredLanguage, "GetDesiredLanguage"}, |
| 636 | {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"}, | 662 | {22, &IApplicationFunctions::SetTerminateResult, "SetTerminateResult"}, |
| @@ -638,10 +664,8 @@ IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationF | |||
| 638 | {24, nullptr, "GetLaunchStorageInfoForDebug"}, | 664 | {24, nullptr, "GetLaunchStorageInfoForDebug"}, |
| 639 | {25, nullptr, "ExtendSaveData"}, | 665 | {25, nullptr, "ExtendSaveData"}, |
| 640 | {26, nullptr, "GetSaveDataSize"}, | 666 | {26, nullptr, "GetSaveDataSize"}, |
| 641 | {30, &IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed, | 667 | {30, &IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed, "BeginBlockingHomeButtonShortAndLongPressed"}, |
| 642 | "BeginBlockingHomeButtonShortAndLongPressed"}, | 668 | {31, &IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed, "EndBlockingHomeButtonShortAndLongPressed"}, |
| 643 | {31, &IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed, | ||
| 644 | "EndBlockingHomeButtonShortAndLongPressed"}, | ||
| 645 | {32, &IApplicationFunctions::BeginBlockingHomeButton, "BeginBlockingHomeButton"}, | 669 | {32, &IApplicationFunctions::BeginBlockingHomeButton, "BeginBlockingHomeButton"}, |
| 646 | {33, &IApplicationFunctions::EndBlockingHomeButton, "EndBlockingHomeButton"}, | 670 | {33, &IApplicationFunctions::EndBlockingHomeButton, "EndBlockingHomeButton"}, |
| 647 | {40, &IApplicationFunctions::NotifyRunning, "NotifyRunning"}, | 671 | {40, &IApplicationFunctions::NotifyRunning, "NotifyRunning"}, |
| @@ -666,6 +690,8 @@ IApplicationFunctions::IApplicationFunctions() : ServiceFramework("IApplicationF | |||
| 666 | {1000, nullptr, "CreateMovieMaker"}, | 690 | {1000, nullptr, "CreateMovieMaker"}, |
| 667 | {1001, nullptr, "PrepareForJit"}, | 691 | {1001, nullptr, "PrepareForJit"}, |
| 668 | }; | 692 | }; |
| 693 | // clang-format on | ||
| 694 | |||
| 669 | RegisterHandlers(functions); | 695 | RegisterHandlers(functions); |
| 670 | } | 696 | } |
| 671 | 697 | ||
| @@ -804,9 +830,11 @@ void InstallInterfaces(SM::ServiceManager& service_manager, | |||
| 804 | std::make_shared<IdleSys>()->InstallAsService(service_manager); | 830 | std::make_shared<IdleSys>()->InstallAsService(service_manager); |
| 805 | std::make_shared<OMM>()->InstallAsService(service_manager); | 831 | std::make_shared<OMM>()->InstallAsService(service_manager); |
| 806 | std::make_shared<SPSM>()->InstallAsService(service_manager); | 832 | std::make_shared<SPSM>()->InstallAsService(service_manager); |
| 833 | std::make_shared<TCAP>()->InstallAsService(service_manager); | ||
| 807 | } | 834 | } |
| 808 | 835 | ||
| 809 | IHomeMenuFunctions::IHomeMenuFunctions() : ServiceFramework("IHomeMenuFunctions") { | 836 | IHomeMenuFunctions::IHomeMenuFunctions() : ServiceFramework("IHomeMenuFunctions") { |
| 837 | // clang-format off | ||
| 810 | static const FunctionInfo functions[] = { | 838 | static const FunctionInfo functions[] = { |
| 811 | {10, &IHomeMenuFunctions::RequestToGetForeground, "RequestToGetForeground"}, | 839 | {10, &IHomeMenuFunctions::RequestToGetForeground, "RequestToGetForeground"}, |
| 812 | {11, nullptr, "LockForeground"}, | 840 | {11, nullptr, "LockForeground"}, |
| @@ -815,7 +843,10 @@ IHomeMenuFunctions::IHomeMenuFunctions() : ServiceFramework("IHomeMenuFunctions" | |||
| 815 | {21, nullptr, "GetPopFromGeneralChannelEvent"}, | 843 | {21, nullptr, "GetPopFromGeneralChannelEvent"}, |
| 816 | {30, nullptr, "GetHomeButtonWriterLockAccessor"}, | 844 | {30, nullptr, "GetHomeButtonWriterLockAccessor"}, |
| 817 | {31, nullptr, "GetWriterLockAccessorEx"}, | 845 | {31, nullptr, "GetWriterLockAccessorEx"}, |
| 846 | {100, nullptr, "PopRequestLaunchApplicationForDebug"}, | ||
| 818 | }; | 847 | }; |
| 848 | // clang-format on | ||
| 849 | |||
| 819 | RegisterHandlers(functions); | 850 | RegisterHandlers(functions); |
| 820 | } | 851 | } |
| 821 | 852 | ||
| @@ -828,6 +859,7 @@ void IHomeMenuFunctions::RequestToGetForeground(Kernel::HLERequestContext& ctx) | |||
| 828 | } | 859 | } |
| 829 | 860 | ||
| 830 | IGlobalStateController::IGlobalStateController() : ServiceFramework("IGlobalStateController") { | 861 | IGlobalStateController::IGlobalStateController() : ServiceFramework("IGlobalStateController") { |
| 862 | // clang-format off | ||
| 831 | static const FunctionInfo functions[] = { | 863 | static const FunctionInfo functions[] = { |
| 832 | {0, nullptr, "RequestToEnterSleep"}, | 864 | {0, nullptr, "RequestToEnterSleep"}, |
| 833 | {1, nullptr, "EnterSleep"}, | 865 | {1, nullptr, "EnterSleep"}, |
| @@ -841,18 +873,23 @@ IGlobalStateController::IGlobalStateController() : ServiceFramework("IGlobalStat | |||
| 841 | {14, nullptr, "ShouldSleepOnBoot"}, | 873 | {14, nullptr, "ShouldSleepOnBoot"}, |
| 842 | {15, nullptr, "GetHdcpAuthenticationFailedEvent"}, | 874 | {15, nullptr, "GetHdcpAuthenticationFailedEvent"}, |
| 843 | }; | 875 | }; |
| 876 | // clang-format on | ||
| 877 | |||
| 844 | RegisterHandlers(functions); | 878 | RegisterHandlers(functions); |
| 845 | } | 879 | } |
| 846 | 880 | ||
| 847 | IGlobalStateController::~IGlobalStateController() = default; | 881 | IGlobalStateController::~IGlobalStateController() = default; |
| 848 | 882 | ||
| 849 | IApplicationCreator::IApplicationCreator() : ServiceFramework("IApplicationCreator") { | 883 | IApplicationCreator::IApplicationCreator() : ServiceFramework("IApplicationCreator") { |
| 884 | // clang-format off | ||
| 850 | static const FunctionInfo functions[] = { | 885 | static const FunctionInfo functions[] = { |
| 851 | {0, nullptr, "CreateApplication"}, | 886 | {0, nullptr, "CreateApplication"}, |
| 852 | {1, nullptr, "PopLaunchRequestedApplication"}, | 887 | {1, nullptr, "PopLaunchRequestedApplication"}, |
| 853 | {10, nullptr, "CreateSystemApplication"}, | 888 | {10, nullptr, "CreateSystemApplication"}, |
| 854 | {100, nullptr, "PopFloatingApplicationForDevelopment"}, | 889 | {100, nullptr, "PopFloatingApplicationForDevelopment"}, |
| 855 | }; | 890 | }; |
| 891 | // clang-format on | ||
| 892 | |||
| 856 | RegisterHandlers(functions); | 893 | RegisterHandlers(functions); |
| 857 | } | 894 | } |
| 858 | 895 | ||
| @@ -860,6 +897,7 @@ IApplicationCreator::~IApplicationCreator() = default; | |||
| 860 | 897 | ||
| 861 | IProcessWindingController::IProcessWindingController() | 898 | IProcessWindingController::IProcessWindingController() |
| 862 | : ServiceFramework("IProcessWindingController") { | 899 | : ServiceFramework("IProcessWindingController") { |
| 900 | // clang-format off | ||
| 863 | static const FunctionInfo functions[] = { | 901 | static const FunctionInfo functions[] = { |
| 864 | {0, nullptr, "GetLaunchReason"}, | 902 | {0, nullptr, "GetLaunchReason"}, |
| 865 | {11, nullptr, "OpenCallingLibraryApplet"}, | 903 | {11, nullptr, "OpenCallingLibraryApplet"}, |
| @@ -870,6 +908,8 @@ IProcessWindingController::IProcessWindingController() | |||
| 870 | {40, nullptr, "ReserveToStartAndWaitAndUnwindThis"}, | 908 | {40, nullptr, "ReserveToStartAndWaitAndUnwindThis"}, |
| 871 | {41, nullptr, "ReserveToStartAndWait"}, | 909 | {41, nullptr, "ReserveToStartAndWait"}, |
| 872 | }; | 910 | }; |
| 911 | // clang-format on | ||
| 912 | |||
| 873 | RegisterHandlers(functions); | 913 | RegisterHandlers(functions); |
| 874 | } | 914 | } |
| 875 | 915 | ||
diff --git a/src/core/hle/service/am/applet_ae.cpp b/src/core/hle/service/am/applet_ae.cpp index 4296c255e..68ea778e8 100644 --- a/src/core/hle/service/am/applet_ae.cpp +++ b/src/core/hle/service/am/applet_ae.cpp | |||
| @@ -211,6 +211,7 @@ void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) { | |||
| 211 | 211 | ||
| 212 | AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) | 212 | AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) |
| 213 | : ServiceFramework("appletAE"), nvflinger(std::move(nvflinger)) { | 213 | : ServiceFramework("appletAE"), nvflinger(std::move(nvflinger)) { |
| 214 | // clang-format off | ||
| 214 | static const FunctionInfo functions[] = { | 215 | static const FunctionInfo functions[] = { |
| 215 | {100, &AppletAE::OpenSystemAppletProxy, "OpenSystemAppletProxy"}, | 216 | {100, &AppletAE::OpenSystemAppletProxy, "OpenSystemAppletProxy"}, |
| 216 | {200, &AppletAE::OpenLibraryAppletProxyOld, "OpenLibraryAppletProxyOld"}, | 217 | {200, &AppletAE::OpenLibraryAppletProxyOld, "OpenLibraryAppletProxyOld"}, |
| @@ -218,7 +219,10 @@ AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) | |||
| 218 | {300, nullptr, "OpenOverlayAppletProxy"}, | 219 | {300, nullptr, "OpenOverlayAppletProxy"}, |
| 219 | {350, nullptr, "OpenSystemApplicationProxy"}, | 220 | {350, nullptr, "OpenSystemApplicationProxy"}, |
| 220 | {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"}, | 221 | {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"}, |
| 222 | {401, nullptr, "GetSystemAppletControllerForDebug"}, | ||
| 221 | }; | 223 | }; |
| 224 | // clang-format on | ||
| 225 | |||
| 222 | RegisterHandlers(functions); | 226 | RegisterHandlers(functions); |
| 223 | } | 227 | } |
| 224 | 228 | ||
diff --git a/src/core/hle/service/am/applet_oe.cpp b/src/core/hle/service/am/applet_oe.cpp index e45cf6e20..60717afd9 100644 --- a/src/core/hle/service/am/applet_oe.cpp +++ b/src/core/hle/service/am/applet_oe.cpp | |||
| @@ -14,6 +14,7 @@ class IApplicationProxy final : public ServiceFramework<IApplicationProxy> { | |||
| 14 | public: | 14 | public: |
| 15 | explicit IApplicationProxy(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) | 15 | explicit IApplicationProxy(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) |
| 16 | : ServiceFramework("IApplicationProxy"), nvflinger(std::move(nvflinger)) { | 16 | : ServiceFramework("IApplicationProxy"), nvflinger(std::move(nvflinger)) { |
| 17 | // clang-format off | ||
| 17 | static const FunctionInfo functions[] = { | 18 | static const FunctionInfo functions[] = { |
| 18 | {0, &IApplicationProxy::GetCommonStateGetter, "GetCommonStateGetter"}, | 19 | {0, &IApplicationProxy::GetCommonStateGetter, "GetCommonStateGetter"}, |
| 19 | {1, &IApplicationProxy::GetSelfController, "GetSelfController"}, | 20 | {1, &IApplicationProxy::GetSelfController, "GetSelfController"}, |
| @@ -25,6 +26,8 @@ public: | |||
| 25 | {20, &IApplicationProxy::GetApplicationFunctions, "GetApplicationFunctions"}, | 26 | {20, &IApplicationProxy::GetApplicationFunctions, "GetApplicationFunctions"}, |
| 26 | {1000, &IApplicationProxy::GetDebugFunctions, "GetDebugFunctions"}, | 27 | {1000, &IApplicationProxy::GetDebugFunctions, "GetDebugFunctions"}, |
| 27 | }; | 28 | }; |
| 29 | // clang-format on | ||
| 30 | |||
| 28 | RegisterHandlers(functions); | 31 | RegisterHandlers(functions); |
| 29 | } | 32 | } |
| 30 | 33 | ||
diff --git a/src/core/hle/service/am/idle.cpp b/src/core/hle/service/am/idle.cpp index 0e3088bc8..f814fe2c0 100644 --- a/src/core/hle/service/am/idle.cpp +++ b/src/core/hle/service/am/idle.cpp | |||
| @@ -12,9 +12,9 @@ IdleSys::IdleSys() : ServiceFramework{"idle:sys"} { | |||
| 12 | {0, nullptr, "GetAutoPowerDownEvent"}, | 12 | {0, nullptr, "GetAutoPowerDownEvent"}, |
| 13 | {1, nullptr, "Unknown1"}, | 13 | {1, nullptr, "Unknown1"}, |
| 14 | {2, nullptr, "Unknown2"}, | 14 | {2, nullptr, "Unknown2"}, |
| 15 | {3, nullptr, "Unknown3"}, | 15 | {3, nullptr, "SetHandlingContext"}, |
| 16 | {4, nullptr, "Unknown4"}, | 16 | {4, nullptr, "LoadAndApplySettings"}, |
| 17 | {5, nullptr, "Unknown5"}, | 17 | {5, nullptr, "ReportUserIsActive"}, |
| 18 | }; | 18 | }; |
| 19 | // clang-format on | 19 | // clang-format on |
| 20 | 20 | ||
diff --git a/src/core/hle/service/am/tcap.cpp b/src/core/hle/service/am/tcap.cpp new file mode 100644 index 000000000..a75cbdda8 --- /dev/null +++ b/src/core/hle/service/am/tcap.cpp | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/hle/service/am/tcap.h" | ||
| 6 | |||
| 7 | namespace Service::AM { | ||
| 8 | |||
| 9 | TCAP::TCAP() : ServiceFramework{"tcap"} { | ||
| 10 | // clang-format off | ||
| 11 | static const FunctionInfo functions[] = { | ||
| 12 | {0, nullptr, "GetContinuousHighSkinTemperatureEvent"}, | ||
| 13 | {1, nullptr, "SetOperationMode"}, | ||
| 14 | {2, nullptr, "LoadAndApplySettings"}, | ||
| 15 | }; | ||
| 16 | // clang-format on | ||
| 17 | |||
| 18 | RegisterHandlers(functions); | ||
| 19 | } | ||
| 20 | |||
| 21 | TCAP::~TCAP() = default; | ||
| 22 | |||
| 23 | } // namespace Service::AM | ||
diff --git a/src/core/hle/service/am/tcap.h b/src/core/hle/service/am/tcap.h new file mode 100644 index 000000000..2021b55d1 --- /dev/null +++ b/src/core/hle/service/am/tcap.h | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "core/hle/service/service.h" | ||
| 8 | |||
| 9 | namespace Service::AM { | ||
| 10 | |||
| 11 | class TCAP final : public ServiceFramework<TCAP> { | ||
| 12 | public: | ||
| 13 | explicit TCAP(); | ||
| 14 | ~TCAP() override; | ||
| 15 | }; | ||
| 16 | |||
| 17 | } // namespace Service::AM | ||
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index beb89218a..a9aa9ec78 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp | |||
| @@ -827,6 +827,7 @@ public: | |||
| 827 | {11, nullptr, "EnableJoyPollingReceiveMode"}, | 827 | {11, nullptr, "EnableJoyPollingReceiveMode"}, |
| 828 | {12, nullptr, "DisableJoyPollingReceiveMode"}, | 828 | {12, nullptr, "DisableJoyPollingReceiveMode"}, |
| 829 | {13, nullptr, "GetPollingData"}, | 829 | {13, nullptr, "GetPollingData"}, |
| 830 | {14, nullptr, "SetStatusManagerType"}, | ||
| 830 | }; | 831 | }; |
| 831 | // clang-format on | 832 | // clang-format on |
| 832 | 833 | ||
diff --git a/src/core/hle/service/lbl/lbl.cpp b/src/core/hle/service/lbl/lbl.cpp index 7321584e1..164c57e18 100644 --- a/src/core/hle/service/lbl/lbl.cpp +++ b/src/core/hle/service/lbl/lbl.cpp | |||
| @@ -18,35 +18,35 @@ public: | |||
| 18 | explicit LBL() : ServiceFramework{"lbl"} { | 18 | explicit LBL() : ServiceFramework{"lbl"} { |
| 19 | // clang-format off | 19 | // clang-format off |
| 20 | static const FunctionInfo functions[] = { | 20 | static const FunctionInfo functions[] = { |
| 21 | {0, nullptr, "Unknown1"}, | 21 | {0, nullptr, "SaveCurrentSetting"}, |
| 22 | {1, nullptr, "Unknown2"}, | 22 | {1, nullptr, "LoadCurrentSetting"}, |
| 23 | {2, nullptr, "Unknown3"}, | 23 | {2, nullptr, "SetCurrentBrightnessSetting"}, |
| 24 | {3, nullptr, "GetCurrentBacklightLevel"}, | 24 | {3, nullptr, "GetCurrentBrightnessSetting"}, |
| 25 | {4, nullptr, "Unknown4"}, | 25 | {4, nullptr, "ApplyCurrentBrightnessSettingToBacklight"}, |
| 26 | {5, nullptr, "GetAlsComputedBacklightLevel"}, | 26 | {5, nullptr, "GetBrightnessSettingAppliedToBacklight"}, |
| 27 | {6, nullptr, "TurnOffBacklight"}, | 27 | {6, nullptr, "SwitchBacklightOn"}, |
| 28 | {7, nullptr, "TurnOnBacklight"}, | 28 | {7, nullptr, "SwitchBacklightOff"}, |
| 29 | {8, nullptr, "GetBacklightStatus"}, | 29 | {8, nullptr, "GetBacklightSwitchStatus"}, |
| 30 | {9, nullptr, "Unknown5"}, | 30 | {9, nullptr, "EnableDimming"}, |
| 31 | {10, nullptr, "Unknown6"}, | 31 | {10, nullptr, "DisableDimming"}, |
| 32 | {11, nullptr, "Unknown7"}, | 32 | {11, nullptr, "IsDimmingEnabled"}, |
| 33 | {12, nullptr, "Unknown8"}, | 33 | {12, nullptr, "EnableAutoBrightnessControl"}, |
| 34 | {13, nullptr, "Unknown9"}, | 34 | {13, nullptr, "DisableAutoBrightnessControl"}, |
| 35 | {14, nullptr, "Unknown10"}, | 35 | {14, nullptr, "IsAutoBrightnessControlEnabled"}, |
| 36 | {15, nullptr, "GetAutoBrightnessSetting"}, | 36 | {15, nullptr, "SetAmbientLightSensorValue"}, |
| 37 | {16, nullptr, "ReadRawLightSensor"}, | 37 | {16, nullptr, "GetAmbientLightSensorValue"}, |
| 38 | {17, nullptr, "Unknown11"}, | 38 | {17, nullptr, "SetBrightnessReflectionDelayLevel"}, |
| 39 | {18, nullptr, "Unknown12"}, | 39 | {18, nullptr, "GetBrightnessReflectionDelayLevel"}, |
| 40 | {19, nullptr, "Unknown13"}, | 40 | {19, nullptr, "SetCurrentBrightnessMapping"}, |
| 41 | {20, nullptr, "Unknown14"}, | 41 | {20, nullptr, "GetCurrentBrightnessMapping"}, |
| 42 | {21, nullptr, "Unknown15"}, | 42 | {21, nullptr, "SetCurrentAmbientLightSensorMapping"}, |
| 43 | {22, nullptr, "Unknown16"}, | 43 | {22, nullptr, "GetCurrentAmbientLightSensorMapping"}, |
| 44 | {23, nullptr, "Unknown17"}, | 44 | {23, nullptr, "IsAmbientLightSensorAvailable"}, |
| 45 | {24, nullptr, "Unknown18"}, | 45 | {24, nullptr, "SetCurrentBrightnessSettingForVrMode"}, |
| 46 | {25, nullptr, "Unknown19"}, | 46 | {25, nullptr, "GetCurrentBrightnessSettingForVrMode"}, |
| 47 | {26, &LBL::EnableVrMode, "EnableVrMode"}, | 47 | {26, &LBL::EnableVrMode, "EnableVrMode"}, |
| 48 | {27, &LBL::DisableVrMode, "DisableVrMode"}, | 48 | {27, &LBL::DisableVrMode, "DisableVrMode"}, |
| 49 | {28, &LBL::GetVrMode, "GetVrMode"}, | 49 | {28, &LBL::IsVrModeEnabled, "IsVrModeEnabled"}, |
| 50 | }; | 50 | }; |
| 51 | // clang-format on | 51 | // clang-format on |
| 52 | 52 | ||
| @@ -72,7 +72,7 @@ private: | |||
| 72 | LOG_DEBUG(Service_LBL, "called"); | 72 | LOG_DEBUG(Service_LBL, "called"); |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | void GetVrMode(Kernel::HLERequestContext& ctx) { | 75 | void IsVrModeEnabled(Kernel::HLERequestContext& ctx) { |
| 76 | IPC::ResponseBuilder rb{ctx, 3}; | 76 | IPC::ResponseBuilder rb{ctx, 3}; |
| 77 | rb.Push(RESULT_SUCCESS); | 77 | rb.Push(RESULT_SUCCESS); |
| 78 | rb.Push(vr_mode_enabled); | 78 | rb.Push(vr_mode_enabled); |
diff --git a/src/core/hle/service/npns/npns.cpp b/src/core/hle/service/npns/npns.cpp new file mode 100644 index 000000000..ccb6f9da9 --- /dev/null +++ b/src/core/hle/service/npns/npns.cpp | |||
| @@ -0,0 +1,88 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include <memory> | ||
| 6 | |||
| 7 | #include "core/hle/service/npns/npns.h" | ||
| 8 | #include "core/hle/service/service.h" | ||
| 9 | #include "core/hle/service/sm/sm.h" | ||
| 10 | |||
| 11 | namespace Service::NPNS { | ||
| 12 | |||
| 13 | class NPNS_S final : public ServiceFramework<NPNS_S> { | ||
| 14 | public: | ||
| 15 | explicit NPNS_S() : ServiceFramework{"npns:s"} { | ||
| 16 | // clang-format off | ||
| 17 | static const FunctionInfo functions[] = { | ||
| 18 | {1, nullptr, "ListenAll"}, | ||
| 19 | {2, nullptr, "ListenTo"}, | ||
| 20 | {3, nullptr, "Receive"}, | ||
| 21 | {4, nullptr, "ReceiveRaw"}, | ||
| 22 | {5, nullptr, "GetReceiveEvent"}, | ||
| 23 | {6, nullptr, "ListenUndelivered"}, | ||
| 24 | {7, nullptr, "GetStateChangeEVent"}, | ||
| 25 | {11, nullptr, "SubscribeTopic"}, | ||
| 26 | {12, nullptr, "UnsubscribeTopic"}, | ||
| 27 | {13, nullptr, "QueryIsTopicExist"}, | ||
| 28 | {21, nullptr, "CreateToken"}, | ||
| 29 | {22, nullptr, "CreateTokenWithApplicationId"}, | ||
| 30 | {23, nullptr, "DestroyToken"}, | ||
| 31 | {24, nullptr, "DestroyTokenWithApplicationId"}, | ||
| 32 | {25, nullptr, "QueryIsTokenValid"}, | ||
| 33 | {31, nullptr, "UploadTokenToBaaS"}, | ||
| 34 | {32, nullptr, "DestroyTokenForBaaS"}, | ||
| 35 | {33, nullptr, "CreateTokenForBaaS"}, | ||
| 36 | {34, nullptr, "SetBaaSDeviceAccountIdList"}, | ||
| 37 | {101, nullptr, "Suspend"}, | ||
| 38 | {102, nullptr, "Resume"}, | ||
| 39 | {103, nullptr, "GetState"}, | ||
| 40 | {104, nullptr, "GetStatistics"}, | ||
| 41 | {105, nullptr, "GetPlayReportRequestEvent"}, | ||
| 42 | {111, nullptr, "GetJid"}, | ||
| 43 | {112, nullptr, "CreateJid"}, | ||
| 44 | {113, nullptr, "DestroyJid"}, | ||
| 45 | {114, nullptr, "AttachJid"}, | ||
| 46 | {115, nullptr, "DetachJid"}, | ||
| 47 | {201, nullptr, "RequestChangeStateForceTimed"}, | ||
| 48 | {102, nullptr, "RequestChangeStateForceAsync"}, | ||
| 49 | }; | ||
| 50 | // clang-format on | ||
| 51 | |||
| 52 | RegisterHandlers(functions); | ||
| 53 | } | ||
| 54 | }; | ||
| 55 | |||
| 56 | class NPNS_U final : public ServiceFramework<NPNS_U> { | ||
| 57 | public: | ||
| 58 | explicit NPNS_U() : ServiceFramework{"npns:u"} { | ||
| 59 | // clang-format off | ||
| 60 | static const FunctionInfo functions[] = { | ||
| 61 | {1, nullptr, "ListenAll"}, | ||
| 62 | {2, nullptr, "ListenTo"}, | ||
| 63 | {3, nullptr, "Receive"}, | ||
| 64 | {4, nullptr, "ReceiveRaw"}, | ||
| 65 | {5, nullptr, "GetReceiveEvent"}, | ||
| 66 | {7, nullptr, "GetStateChangeEVent"}, | ||
| 67 | {21, nullptr, "CreateToken"}, | ||
| 68 | {23, nullptr, "DestroyToken"}, | ||
| 69 | {25, nullptr, "QueryIsTokenValid"}, | ||
| 70 | {26, nullptr, "ListenToMyApplicationId"}, | ||
| 71 | {101, nullptr, "Suspend"}, | ||
| 72 | {102, nullptr, "Resume"}, | ||
| 73 | {103, nullptr, "GetState"}, | ||
| 74 | {104, nullptr, "GetStatistics"}, | ||
| 75 | {111, nullptr, "GetJid"}, | ||
| 76 | }; | ||
| 77 | // clang-format on | ||
| 78 | |||
| 79 | RegisterHandlers(functions); | ||
| 80 | } | ||
| 81 | }; | ||
| 82 | |||
| 83 | void InstallInterfaces(SM::ServiceManager& sm) { | ||
| 84 | std::make_shared<NPNS_S>()->InstallAsService(sm); | ||
| 85 | std::make_shared<NPNS_U>()->InstallAsService(sm); | ||
| 86 | } | ||
| 87 | |||
| 88 | } // namespace Service::NPNS | ||
diff --git a/src/core/hle/service/npns/npns.h b/src/core/hle/service/npns/npns.h new file mode 100644 index 000000000..861cd3e48 --- /dev/null +++ b/src/core/hle/service/npns/npns.h | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | namespace Service::SM { | ||
| 8 | class ServiceManager; | ||
| 9 | } | ||
| 10 | |||
| 11 | namespace Service::NPNS { | ||
| 12 | |||
| 13 | void InstallInterfaces(SM::ServiceManager& sm); | ||
| 14 | |||
| 15 | } // namespace Service::NPNS | ||
diff --git a/src/core/hle/service/prepo/prepo.cpp b/src/core/hle/service/prepo/prepo.cpp index 6a9eccfb5..e4fcee9f8 100644 --- a/src/core/hle/service/prepo/prepo.cpp +++ b/src/core/hle/service/prepo/prepo.cpp | |||
| @@ -14,20 +14,24 @@ public: | |||
| 14 | explicit PlayReport(const char* name) : ServiceFramework{name} { | 14 | explicit PlayReport(const char* name) : ServiceFramework{name} { |
| 15 | // clang-format off | 15 | // clang-format off |
| 16 | static const FunctionInfo functions[] = { | 16 | static const FunctionInfo functions[] = { |
| 17 | {10100, nullptr, "SaveReport"}, | 17 | {10100, nullptr, "SaveReportOld"}, |
| 18 | {10101, &PlayReport::SaveReportWithUser, "SaveReportWithUser"}, | 18 | {10101, &PlayReport::SaveReportWithUserOld, "SaveReportWithUserOld"}, |
| 19 | {10102, nullptr, "SaveReport"}, | ||
| 20 | {10103, nullptr, "SaveReportWithUser"}, | ||
| 19 | {10200, nullptr, "RequestImmediateTransmission"}, | 21 | {10200, nullptr, "RequestImmediateTransmission"}, |
| 20 | {10300, nullptr, "GetTransmissionStatus"}, | 22 | {10300, nullptr, "GetTransmissionStatus"}, |
| 21 | {20100, nullptr, "SaveSystemReport"}, | 23 | {20100, nullptr, "SaveSystemReport"}, |
| 22 | {20200, nullptr, "SetOperationMode"}, | ||
| 23 | {20101, nullptr, "SaveSystemReportWithUser"}, | 24 | {20101, nullptr, "SaveSystemReportWithUser"}, |
| 25 | {20200, nullptr, "SetOperationMode"}, | ||
| 24 | {30100, nullptr, "ClearStorage"}, | 26 | {30100, nullptr, "ClearStorage"}, |
| 27 | {30200, nullptr, "ClearStatistics"}, | ||
| 28 | {30300, nullptr, "GetStorageUsage"}, | ||
| 29 | {30400, nullptr, "GetStatistics"}, | ||
| 30 | {30401, nullptr, "GetThroughputHistory"}, | ||
| 31 | {30500, nullptr, "GetLastUploadError"}, | ||
| 25 | {40100, nullptr, "IsUserAgreementCheckEnabled"}, | 32 | {40100, nullptr, "IsUserAgreementCheckEnabled"}, |
| 26 | {40101, nullptr, "SetUserAgreementCheckEnabled"}, | 33 | {40101, nullptr, "SetUserAgreementCheckEnabled"}, |
| 27 | {90100, nullptr, "GetStorageUsage"}, | 34 | {90100, nullptr, "ReadAllReportFiles"}, |
| 28 | {90200, nullptr, "GetStatistics"}, | ||
| 29 | {90201, nullptr, "GetThroughputHistory"}, | ||
| 30 | {90300, nullptr, "GetLastUploadError"}, | ||
| 31 | }; | 35 | }; |
| 32 | // clang-format on | 36 | // clang-format on |
| 33 | 37 | ||
| @@ -35,7 +39,7 @@ public: | |||
| 35 | } | 39 | } |
| 36 | 40 | ||
| 37 | private: | 41 | private: |
| 38 | void SaveReportWithUser(Kernel::HLERequestContext& ctx) { | 42 | void SaveReportWithUserOld(Kernel::HLERequestContext& ctx) { |
| 39 | // TODO(ogniK): Do we want to add play report? | 43 | // TODO(ogniK): Do we want to add play report? |
| 40 | LOG_WARNING(Service_PREPO, "(STUBBED) called"); | 44 | LOG_WARNING(Service_PREPO, "(STUBBED) called"); |
| 41 | 45 | ||
| @@ -46,6 +50,7 @@ private: | |||
| 46 | 50 | ||
| 47 | void InstallInterfaces(SM::ServiceManager& service_manager) { | 51 | void InstallInterfaces(SM::ServiceManager& service_manager) { |
| 48 | std::make_shared<PlayReport>("prepo:a")->InstallAsService(service_manager); | 52 | std::make_shared<PlayReport>("prepo:a")->InstallAsService(service_manager); |
| 53 | std::make_shared<PlayReport>("prepo:a2")->InstallAsService(service_manager); | ||
| 49 | std::make_shared<PlayReport>("prepo:m")->InstallAsService(service_manager); | 54 | std::make_shared<PlayReport>("prepo:m")->InstallAsService(service_manager); |
| 50 | std::make_shared<PlayReport>("prepo:s")->InstallAsService(service_manager); | 55 | std::make_shared<PlayReport>("prepo:s")->InstallAsService(service_manager); |
| 51 | std::make_shared<PlayReport>("prepo:u")->InstallAsService(service_manager); | 56 | std::make_shared<PlayReport>("prepo:u")->InstallAsService(service_manager); |
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index a225cb4cb..dd6c6d3b3 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | #include "core/hle/service/apm/apm.h" | 22 | #include "core/hle/service/apm/apm.h" |
| 23 | #include "core/hle/service/arp/arp.h" | 23 | #include "core/hle/service/arp/arp.h" |
| 24 | #include "core/hle/service/audio/audio.h" | 24 | #include "core/hle/service/audio/audio.h" |
| 25 | #include "core/hle/service/bcat/bcat.h" | 25 | #include "core/hle/service/bcat/module.h" |
| 26 | #include "core/hle/service/bpc/bpc.h" | 26 | #include "core/hle/service/bpc/bpc.h" |
| 27 | #include "core/hle/service/btdrv/btdrv.h" | 27 | #include "core/hle/service/btdrv/btdrv.h" |
| 28 | #include "core/hle/service/btm/btm.h" | 28 | #include "core/hle/service/btm/btm.h" |
| @@ -48,11 +48,12 @@ | |||
| 48 | #include "core/hle/service/nfp/nfp.h" | 48 | #include "core/hle/service/nfp/nfp.h" |
| 49 | #include "core/hle/service/nifm/nifm.h" | 49 | #include "core/hle/service/nifm/nifm.h" |
| 50 | #include "core/hle/service/nim/nim.h" | 50 | #include "core/hle/service/nim/nim.h" |
| 51 | #include "core/hle/service/npns/npns.h" | ||
| 51 | #include "core/hle/service/ns/ns.h" | 52 | #include "core/hle/service/ns/ns.h" |
| 52 | #include "core/hle/service/nvdrv/nvdrv.h" | 53 | #include "core/hle/service/nvdrv/nvdrv.h" |
| 53 | #include "core/hle/service/nvflinger/nvflinger.h" | 54 | #include "core/hle/service/nvflinger/nvflinger.h" |
| 54 | #include "core/hle/service/pcie/pcie.h" | 55 | #include "core/hle/service/pcie/pcie.h" |
| 55 | #include "core/hle/service/pctl/pctl.h" | 56 | #include "core/hle/service/pctl/module.h" |
| 56 | #include "core/hle/service/pcv/pcv.h" | 57 | #include "core/hle/service/pcv/pcv.h" |
| 57 | #include "core/hle/service/pm/pm.h" | 58 | #include "core/hle/service/pm/pm.h" |
| 58 | #include "core/hle/service/prepo/prepo.h" | 59 | #include "core/hle/service/prepo/prepo.h" |
| @@ -236,6 +237,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm, FileSys::VfsFilesystem& vfs) | |||
| 236 | NFP::InstallInterfaces(*sm); | 237 | NFP::InstallInterfaces(*sm); |
| 237 | NIFM::InstallInterfaces(*sm); | 238 | NIFM::InstallInterfaces(*sm); |
| 238 | NIM::InstallInterfaces(*sm); | 239 | NIM::InstallInterfaces(*sm); |
| 240 | NPNS::InstallInterfaces(*sm); | ||
| 239 | NS::InstallInterfaces(*sm); | 241 | NS::InstallInterfaces(*sm); |
| 240 | Nvidia::InstallInterfaces(*sm, *nv_flinger); | 242 | Nvidia::InstallInterfaces(*sm, *nv_flinger); |
| 241 | PCIe::InstallInterfaces(*sm); | 243 | PCIe::InstallInterfaces(*sm); |