mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #161 from bunnei/service-improvements
Many service improvements
This commit is contained in:
		
						commit
						35517ca92c
					
				| @ -32,14 +32,20 @@ namespace Log { | ||||
|     CLS(Kernel)                                                                                    \ | ||||
|     SUB(Kernel, SVC)                                                                               \ | ||||
|     CLS(Service)                                                                                   \ | ||||
|     SUB(Service, SM)                                                                               \ | ||||
|     SUB(Service, FS)                                                                               \ | ||||
|     SUB(Service, GSP)                                                                              \ | ||||
|     SUB(Service, CFG)                                                                              \ | ||||
|     SUB(Service, DSP)                                                                              \ | ||||
|     SUB(Service, HID)                                                                              \ | ||||
|     SUB(Service, NVDRV)                                                                            \ | ||||
|     SUB(Service, ACC)                                                                              \ | ||||
|     SUB(Service, Audio)                                                                            \ | ||||
|     SUB(Service, AM)                                                                               \ | ||||
|     SUB(Service, APM)                                                                              \ | ||||
|     SUB(Service, FS)                                                                               \ | ||||
|     SUB(Service, HID)                                                                              \ | ||||
|     SUB(Service, LM)                                                                               \ | ||||
|     SUB(Service, NIFM)                                                                             \ | ||||
|     SUB(Service, NVDRV)                                                                            \ | ||||
|     SUB(Service, PCTL)                                                                             \ | ||||
|     SUB(Service, SET)                                                                              \ | ||||
|     SUB(Service, SM)                                                                               \ | ||||
|     SUB(Service, Time)                                                                             \ | ||||
|     SUB(Service, VI)                                                                               \ | ||||
|     CLS(HW)                                                                                        \ | ||||
|     SUB(HW, Memory)                                                                                \ | ||||
|     SUB(HW, LCD)                                                                                   \ | ||||
|  | ||||
| @ -49,14 +49,20 @@ enum class Class : ClassType { | ||||
|     Kernel_SVC,        ///< Kernel system calls
 | ||||
|     Service,           ///< HLE implementation of system services. Each major service
 | ||||
|                        ///  should have its own subclass.
 | ||||
|     Service_SM,        ///< The SRV (Service Directory) implementation
 | ||||
|     Service_FS,        ///< The FS (Filesystem) service implementation
 | ||||
|     Service_GSP,       ///< The GSP (GPU control) service
 | ||||
|     Service_CFG,       ///< The CFG (Configuration) service
 | ||||
|     Service_DSP,       ///< The DSP (DSP control) service
 | ||||
|     Service_HID,       ///< The HID (Human interface device) service
 | ||||
|     Service_NVDRV,     ///< The NVDRV (Nvidia driver) service
 | ||||
|     Service_ACC,       ///< The ACC (Accounts) service
 | ||||
|     Service_AM,        ///< The AM (Applet manager) service
 | ||||
|     Service_APM,       ///< The APM (Performance) service
 | ||||
|     Service_Audio,     ///< The Audio (Audio control) service
 | ||||
|     Service_FS,        ///< The FS (Filesystem) service
 | ||||
|     Service_HID,       ///< The HID (Human interface device) service
 | ||||
|     Service_LM,        ///< The LM (Logger) service
 | ||||
|     Service_NIFM,      ///< The NIFM (Network interface) service
 | ||||
|     Service_NVDRV,     ///< The NVDRV (Nvidia driver) service
 | ||||
|     Service_PCTL,      ///< The PCTL (Parental control) service
 | ||||
|     Service_SET,       ///< The SET (Settings) service
 | ||||
|     Service_SM,        ///< The SM (Service manager) service
 | ||||
|     Service_Time,      ///< The time service
 | ||||
|     Service_VI,        ///< The VI (Video interface) service
 | ||||
|     HW,                ///< Low-level hardware emulation
 | ||||
|     HW_Memory,         ///< Memory-map and address translation
 | ||||
|     HW_LCD,            ///< LCD register emulation
 | ||||
|  | ||||
| @ -20,7 +20,7 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void GetBase(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|         ProfileBase profile_base{}; | ||||
|         IPC::ResponseBuilder rb{ctx, 16}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
| @ -40,14 +40,14 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void CheckAvailability(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push(true); // TODO: Check when this is supposed to return true and when not
 | ||||
|     } | ||||
| 
 | ||||
|     void GetAccountId(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 4}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push<u64>(0x12345678ABCDEF); | ||||
| @ -55,7 +55,7 @@ private: | ||||
| }; | ||||
| 
 | ||||
| void ACC_U0::GetUserExistence(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(true); // TODO: Check when this is supposed to return true and when not
 | ||||
| @ -65,11 +65,11 @@ void ACC_U0::GetProfile(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IProfile>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
| } | ||||
| 
 | ||||
| void ACC_U0::InitializeApplicationInfo(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| } | ||||
| @ -78,12 +78,21 @@ void ACC_U0::GetBaasAccountManagerForApplication(Kernel::HLERequestContext& ctx) | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IManagerForApplication>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_ACC, "called"); | ||||
| } | ||||
| 
 | ||||
| void ACC_U0::GetLastOpenedUser(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_ACC, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 6}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u64>(0x0); | ||||
|     rb.Push<u64>(0x0); | ||||
| } | ||||
| 
 | ||||
| ACC_U0::ACC_U0() : ServiceFramework("acc:u0") { | ||||
|     static const FunctionInfo functions[] = { | ||||
|         {1, &ACC_U0::GetUserExistence, "GetUserExistence"}, | ||||
|         {4, &ACC_U0::GetLastOpenedUser, "GetLastOpenedUser"}, | ||||
|         {5, &ACC_U0::GetProfile, "GetProfile"}, | ||||
|         {100, &ACC_U0::InitializeApplicationInfo, "InitializeApplicationInfo"}, | ||||
|         {101, &ACC_U0::GetBaasAccountManagerForApplication, "GetBaasAccountManagerForApplication"}, | ||||
|  | ||||
| @ -28,6 +28,7 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void GetUserExistence(Kernel::HLERequestContext& ctx); | ||||
|     void GetLastOpenedUser(Kernel::HLERequestContext& ctx); | ||||
|     void GetProfile(Kernel::HLERequestContext& ctx); | ||||
|     void InitializeApplicationInfo(Kernel::HLERequestContext& ctx); | ||||
|     void GetBaasAccountManagerForApplication(Kernel::HLERequestContext& ctx); | ||||
|  | ||||
| @ -22,14 +22,14 @@ IWindowController::IWindowController() : ServiceFramework("IWindowController") { | ||||
| } | ||||
| 
 | ||||
| void IWindowController::GetAppletResourceUserId(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u64>(0); | ||||
| } | ||||
| 
 | ||||
| void IWindowController::AcquireForegroundRights(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| } | ||||
| @ -73,14 +73,14 @@ void ISelfController::SetFocusHandlingMode(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ISelfController::SetRestartMessageEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ISelfController::SetPerformanceModeChangedNotification(Kernel::HLERequestContext& ctx) { | ||||
| @ -91,7 +91,7 @@ void ISelfController::SetPerformanceModeChangedNotification(Kernel::HLERequestCo | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called flag=%u", static_cast<u32>(flag)); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called flag=%u", static_cast<u32>(flag)); | ||||
| } | ||||
| 
 | ||||
| void ISelfController::SetOperationModeChangedNotification(Kernel::HLERequestContext& ctx) { | ||||
| @ -102,7 +102,7 @@ void ISelfController::SetOperationModeChangedNotification(Kernel::HLERequestCont | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called flag=%u", static_cast<u32>(flag)); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called flag=%u", static_cast<u32>(flag)); | ||||
| } | ||||
| 
 | ||||
| void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& ctx) { | ||||
| @ -115,21 +115,21 @@ void ISelfController::SetOutOfFocusSuspendingEnabled(Kernel::HLERequestContext& | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called enabled=%u", static_cast<u32>(enabled)); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called enabled=%u", static_cast<u32>(enabled)); | ||||
| } | ||||
| 
 | ||||
| void ISelfController::LockExit(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ISelfController::UnlockExit(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) { | ||||
| @ -142,7 +142,7 @@ void ISelfController::CreateManagedDisplayLayer(Kernel::HLERequestContext& ctx) | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(layer_id); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| ICommonStateGetter::ICommonStateGetter() : ServiceFramework("ICommonStateGetter") { | ||||
| @ -165,7 +165,7 @@ void ICommonStateGetter::GetEventHandle(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushCopyObjects(event); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::ReceiveMessage(Kernel::HLERequestContext& ctx) { | ||||
| @ -173,7 +173,7 @@ void ICommonStateGetter::ReceiveMessage(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u32>(15); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::GetCurrentFocusState(Kernel::HLERequestContext& ctx) { | ||||
| @ -181,7 +181,7 @@ void ICommonStateGetter::GetCurrentFocusState(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(static_cast<u8>(FocusState::InFocus)); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::GetOperationMode(Kernel::HLERequestContext& ctx) { | ||||
| @ -189,7 +189,7 @@ void ICommonStateGetter::GetOperationMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(static_cast<u8>(OperationMode::Handheld)); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::GetPerformanceMode(Kernel::HLERequestContext& ctx) { | ||||
| @ -197,7 +197,7 @@ void ICommonStateGetter::GetPerformanceMode(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(static_cast<u32>(APM::PerformanceMode::Handheld)); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| ILibraryAppletCreator::ILibraryAppletCreator() : ServiceFramework("ILibraryAppletCreator") {} | ||||
| @ -222,7 +222,7 @@ private: | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push(static_cast<u64>(buffer.size())); | ||||
| 
 | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void Read(Kernel::HLERequestContext& ctx) { | ||||
| @ -240,7 +240,7 @@ private: | ||||
| 
 | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| @ -263,7 +263,7 @@ private: | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<AM::IStorageAccessor>(buffer); | ||||
| 
 | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| @ -296,7 +296,7 @@ void IApplicationFunctions::PopLaunchParameter(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<AM::IStorage>(buffer); | ||||
| 
 | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
| } | ||||
| 
 | ||||
| void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { | ||||
| @ -309,27 +309,27 @@ void IApplicationFunctions::SetTerminateResult(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called, result=0x%08X", result); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called, result=0x%08X", result); | ||||
| } | ||||
| 
 | ||||
| void IApplicationFunctions::GetDesiredLanguage(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u64>(SystemLanguage::English); | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void IApplicationFunctions::InitializeGamePlayRecording(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void IApplicationFunctions::SetGamePlayRecordingState(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void IApplicationFunctions::NotifyRunning(Kernel::HLERequestContext& ctx) { | ||||
| @ -337,7 +337,7 @@ void IApplicationFunctions::NotifyRunning(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u8>(0); // Unknown, seems to be ignored by official processes
 | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| void InstallInterfaces(SM::ServiceManager& service_manager, | ||||
|  | ||||
| @ -33,56 +33,56 @@ private: | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<ICommonStateGetter>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetSelfController(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<ISelfController>(nvflinger); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetWindowController(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IWindowController>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetAudioController(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IAudioController>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetDisplayController(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IDisplayController>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetDebugFunctions(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IDebugFunctions>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetLibraryAppletCreator(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<ILibraryAppletCreator>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetApplicationFunctions(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IApplicationFunctions>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     std::shared_ptr<NVFlinger::NVFlinger> nvflinger; | ||||
| @ -92,7 +92,7 @@ void AppletAE::OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<ILibraryAppletProxy>(nvflinger); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
| } | ||||
| 
 | ||||
| AppletAE::AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) | ||||
|  | ||||
| @ -33,56 +33,56 @@ private: | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IAudioController>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetDisplayController(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IDisplayController>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetDebugFunctions(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IDebugFunctions>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetWindowController(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IWindowController>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetSelfController(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<ISelfController>(nvflinger); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetCommonStateGetter(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<ICommonStateGetter>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetLibraryAppletCreator(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<ILibraryAppletCreator>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void GetApplicationFunctions(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IApplicationFunctions>(); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_AM, "called"); | ||||
|     } | ||||
| 
 | ||||
|     std::shared_ptr<NVFlinger::NVFlinger> nvflinger; | ||||
| @ -92,7 +92,7 @@ void AppletOE::OpenApplicationProxy(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IApplicationProxy>(nvflinger); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
| } | ||||
| 
 | ||||
| AppletOE::AppletOE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger) | ||||
|  | ||||
| @ -33,7 +33,8 @@ private: | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
| 
 | ||||
|         LOG_WARNING(Service, "(STUBBED) called mode=%u config=%u", static_cast<u32>(mode), config); | ||||
|         LOG_WARNING(Service_APM, "(STUBBED) called mode=%u config=%u", static_cast<u32>(mode), | ||||
|                     config); | ||||
|     } | ||||
| 
 | ||||
|     void GetPerformanceConfiguration(Kernel::HLERequestContext& ctx) { | ||||
| @ -45,7 +46,7 @@ private: | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push<u32>(0); // Performance configuration
 | ||||
| 
 | ||||
|         LOG_WARNING(Service, "(STUBBED) called mode=%u", static_cast<u32>(mode)); | ||||
|         LOG_WARNING(Service_APM, "(STUBBED) called mode=%u", static_cast<u32>(mode)); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -49,7 +49,7 @@ private: | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushCopyObjects(shared_mem); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_HID, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void LoadInputDevices() { | ||||
| @ -151,11 +151,37 @@ private: | ||||
|         buttons; | ||||
| }; | ||||
| 
 | ||||
| class IActiveVibrationDeviceList final : public ServiceFramework<IActiveVibrationDeviceList> { | ||||
| public: | ||||
|     IActiveVibrationDeviceList() : ServiceFramework("IActiveVibrationDeviceList") { | ||||
|         static const FunctionInfo functions[] = { | ||||
|             {0, &IActiveVibrationDeviceList::ActivateVibrationDevice, "ActivateVibrationDevice"}, | ||||
|         }; | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
| 
 | ||||
| private: | ||||
|     void ActivateVibrationDevice(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| class Hid final : public ServiceFramework<Hid> { | ||||
| public: | ||||
|     Hid() : ServiceFramework("hid") { | ||||
|         static const FunctionInfo functions[] = { | ||||
|             {0x00000000, &Hid::CreateAppletResource, "CreateAppletResource"}, | ||||
|             {0, &Hid::CreateAppletResource, "CreateAppletResource"}, | ||||
|             {1, &Hid::ActivateDebugPad, "ActivateDebugPad"}, | ||||
|             {11, nullptr, "ActivateTouchScreen"}, | ||||
|             {66, &Hid::StartSixAxisSensor, "StartSixAxisSensor"}, | ||||
|             {100, &Hid::SetSupportedNpadStyleSet, "SetSupportedNpadStyleSet"}, | ||||
|             {102, &Hid::SetSupportedNpadIdType, "SetSupportedNpadIdType"}, | ||||
|             {103, &Hid::ActivateNpad, "ActivateNpad"}, | ||||
|             {120, nullptr, "SetNpadJoyHoldType"}, | ||||
|             {124, nullptr, "SetNpadJoyAssignmentModeDual"}, | ||||
|             {203, &Hid::CreateActiveVibrationDeviceList, "CreateActiveVibrationDeviceList"}, | ||||
|         }; | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
| @ -172,7 +198,44 @@ private: | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IAppletResource>(applet_resource); | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_HID, "called"); | ||||
|     } | ||||
| 
 | ||||
|     void ActivateDebugPad(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|     } | ||||
| 
 | ||||
|     void StartSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|     } | ||||
| 
 | ||||
|     void SetSupportedNpadStyleSet(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|     } | ||||
| 
 | ||||
|     void SetSupportedNpadIdType(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|     } | ||||
| 
 | ||||
|     void ActivateNpad(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|     } | ||||
| 
 | ||||
|     void CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<IActiveVibrationDeviceList>(); | ||||
|         LOG_DEBUG(Service_HID, "called"); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -76,7 +76,7 @@ private: | ||||
|         addr += sizeof(MessageHeader); | ||||
| 
 | ||||
|         if (!header.IsSingleMessage()) { | ||||
|             LOG_WARNING(Service, "Multi message logs are unimplemeneted"); | ||||
|             LOG_WARNING(Service_LM, "Multi message logs are unimplemeneted"); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
| @ -125,7 +125,7 @@ private: | ||||
|         if (line) { | ||||
|             output += std::to_string(line) + ':'; | ||||
|         } | ||||
|         if (output.back() == ':') { | ||||
|         if (output.length() > 0 && output.back() == ':') { | ||||
|             output += ' '; | ||||
|         } | ||||
|         output += message; | ||||
| @ -150,7 +150,7 @@ void LM::Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<Logger>(); | ||||
| 
 | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_LM, "called"); | ||||
| } | ||||
| 
 | ||||
| LM::LM() : ServiceFramework("lm") { | ||||
|  | ||||
| @ -112,7 +112,7 @@ IGeneralService::IGeneralService() : ServiceFramework("IGeneralService") { | ||||
| } | ||||
| 
 | ||||
| void IGeneralService::GetClientId(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u64>(0); | ||||
| @ -124,7 +124,7 @@ void IGeneralService::CreateScanRequest(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IScanRequest>(); | ||||
| 
 | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| void IGeneralService::CreateRequest(Kernel::HLERequestContext& ctx) { | ||||
| @ -133,11 +133,11 @@ void IGeneralService::CreateRequest(Kernel::HLERequestContext& ctx) { | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IRequest>(); | ||||
| 
 | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| void IGeneralService::RemoveNetworkProfile(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| } | ||||
| @ -148,7 +148,7 @@ void IGeneralService::CreateTemporaryNetworkProfile(Kernel::HLERequestContext& c | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<INetworkProfile>(); | ||||
| 
 | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| void InstallInterfaces(SM::ServiceManager& service_manager) { | ||||
|  | ||||
| @ -14,14 +14,14 @@ void NIFM_A::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IGeneralService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| void NIFM_A::CreateGeneralService(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IGeneralService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| NIFM_A::NIFM_A() : ServiceFramework("nifm:a") { | ||||
|  | ||||
| @ -14,14 +14,14 @@ void NIFM_S::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IGeneralService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| void NIFM_S::CreateGeneralService(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IGeneralService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| NIFM_S::NIFM_S() : ServiceFramework("nifm:s") { | ||||
|  | ||||
| @ -14,14 +14,14 @@ void NIFM_U::CreateGeneralServiceOld(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IGeneralService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| void NIFM_U::CreateGeneralService(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IGeneralService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_NIFM, "called"); | ||||
| } | ||||
| 
 | ||||
| NIFM_U::NIFM_U() : ServiceFramework("nifm:u") { | ||||
|  | ||||
| @ -52,7 +52,7 @@ u32 nvmap::IocCreate(const std::vector<u8>& input, std::vector<u8>& output) { | ||||
|     u32 handle = next_handle++; | ||||
|     handles[handle] = std::move(object); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) size 0x%08X", params.size); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) size 0x%08X", params.size); | ||||
| 
 | ||||
|     params.handle = handle; | ||||
| 
 | ||||
| @ -74,7 +74,7 @@ u32 nvmap::IocAlloc(const std::vector<u8>& input, std::vector<u8>& output) { | ||||
|     object->addr = params.addr; | ||||
|     object->status = Object::Status::Allocated; | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) Allocated address 0x%llx", params.addr); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) Allocated address 0x%llx", params.addr); | ||||
| 
 | ||||
|     std::memcpy(output.data(), ¶ms, sizeof(params)); | ||||
|     return 0; | ||||
| @ -84,7 +84,7 @@ u32 nvmap::IocGetId(const std::vector<u8>& input, std::vector<u8>& output) { | ||||
|     IocGetIdParams params; | ||||
|     std::memcpy(¶ms, input.data(), sizeof(params)); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "called"); | ||||
|     LOG_WARNING(Service_NVDRV, "called"); | ||||
| 
 | ||||
|     auto itr = handles.find(params.handle); | ||||
|     ASSERT(itr != handles.end()); | ||||
| @ -99,7 +99,7 @@ u32 nvmap::IocFromId(const std::vector<u8>& input, std::vector<u8>& output) { | ||||
|     IocFromIdParams params; | ||||
|     std::memcpy(¶ms, input.data(), sizeof(params)); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
| 
 | ||||
|     auto itr = std::find_if(handles.begin(), handles.end(), | ||||
|                             [&](const auto& entry) { return entry.second->id == params.id; }); | ||||
| @ -121,7 +121,7 @@ u32 nvmap::IocParam(const std::vector<u8>& input, std::vector<u8>& output) { | ||||
|     IocParamParams params; | ||||
|     std::memcpy(¶ms, input.data(), sizeof(params)); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called type=%u", params.type); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called type=%u", params.type); | ||||
| 
 | ||||
|     auto itr = handles.find(params.handle); | ||||
|     ASSERT(itr != handles.end()); | ||||
|  | ||||
| @ -11,7 +11,7 @@ namespace Service { | ||||
| namespace Nvidia { | ||||
| 
 | ||||
| void NVDRV::Open(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
| 
 | ||||
|     auto buffer = ctx.BufferDescriptorA()[0]; | ||||
| 
 | ||||
| @ -25,7 +25,7 @@ void NVDRV::Open(Kernel::HLERequestContext& ctx) { | ||||
| } | ||||
| 
 | ||||
| void NVDRV::Ioctl(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u32 fd = rp.Pop<u32>(); | ||||
| @ -49,7 +49,7 @@ void NVDRV::Ioctl(Kernel::HLERequestContext& ctx) { | ||||
| } | ||||
| 
 | ||||
| void NVDRV::Close(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u32 fd = rp.Pop<u32>(); | ||||
| @ -61,7 +61,7 @@ void NVDRV::Close(Kernel::HLERequestContext& ctx) { | ||||
| } | ||||
| 
 | ||||
| void NVDRV::Initialize(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_NVDRV, "(STUBBED) called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u32>(0); | ||||
| @ -71,7 +71,7 @@ void NVDRV::SetClientPID(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     pid = rp.Pop<u64>(); | ||||
| 
 | ||||
|     LOG_INFO(Service, "called, pid=0x%lx", pid); | ||||
|     LOG_INFO(Service_NVDRV, "called, pid=0x%lx", pid); | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push<u32>(0); | ||||
|  | ||||
| @ -14,6 +14,7 @@ namespace NVFlinger { | ||||
| 
 | ||||
| BufferQueue::BufferQueue(u32 id, u64 layer_id) : id(id), layer_id(layer_id) { | ||||
|     native_handle = Kernel::Event::Create(Kernel::ResetType::OneShot, "BufferQueue NativeHandle"); | ||||
|     native_handle->Signal(); | ||||
| } | ||||
| 
 | ||||
| void BufferQueue::SetPreallocatedBuffer(u32 slot, IGBPBuffer& igbp_buffer) { | ||||
|  | ||||
| @ -18,7 +18,7 @@ void PCTL_A::GetService(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<IParentalControlService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_PCTL, "called"); | ||||
| } | ||||
| 
 | ||||
| PCTL_A::PCTL_A() : ServiceFramework("pctl:a") { | ||||
|  | ||||
| @ -13,18 +13,19 @@ namespace Service { | ||||
| namespace Set { | ||||
| 
 | ||||
| void SET::GetAvailableLanguageCodes(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u32 id = rp.Pop<u32>(); | ||||
|     constexpr std::array<u8, 13> lang_codes{}; | ||||
| 
 | ||||
|     const auto& output_buffer = ctx.BufferDescriptorC()[0]; | ||||
| 
 | ||||
|     Memory::WriteBlock(output_buffer.Address(), lang_codes.data(), lang_codes.size()); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
| 
 | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(static_cast<u64>(lang_codes.size())); | ||||
| 
 | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_SET, "(STUBBED) called"); | ||||
| } | ||||
| 
 | ||||
| SET::SET(const char* name) : ServiceFramework(name) { | ||||
|  | ||||
| @ -29,14 +29,14 @@ private: | ||||
|         const s64 time_since_epoch{std::chrono::duration_cast<std::chrono::seconds>( | ||||
|                                        std::chrono::system_clock::now().time_since_epoch()) | ||||
|                                        .count()}; | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_Time, "called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 4}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push<u64>(time_since_epoch); | ||||
|     } | ||||
| 
 | ||||
|     void GetSystemClockContext(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_Time, "(STUBBED) called"); | ||||
|         SystemClockContext system_clock_ontext{}; | ||||
|         IPC::ResponseBuilder rb{ctx, (sizeof(SystemClockContext) / 4) + 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
| @ -55,7 +55,7 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void GetCurrentTimePoint(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_DEBUG(Service, "called"); | ||||
|         LOG_DEBUG(Service_Time, "called"); | ||||
|         SteadyClockTimePoint steady_clock_time_point{cyclesToMs(CoreTiming::GetTicks()) / 1000}; | ||||
|         IPC::ResponseBuilder rb{ctx, (sizeof(SteadyClockTimePoint) / 4) + 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
| @ -76,7 +76,7 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void GetDeviceLocationName(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_Time, "(STUBBED) called"); | ||||
|         LocationName location_name{}; | ||||
|         IPC::ResponseBuilder rb{ctx, (sizeof(LocationName) / 4) + 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
| @ -84,7 +84,7 @@ private: | ||||
|     } | ||||
| 
 | ||||
|     void GetTotalLocationNameCount(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_Time, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push<u32>(0); | ||||
| @ -94,7 +94,7 @@ private: | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u64 posix_time = rp.Pop<u64>(); | ||||
| 
 | ||||
|         LOG_WARNING(Service, "(STUBBED) called, posix_time=0x%016llX", posix_time); | ||||
|         LOG_WARNING(Service_Time, "(STUBBED) called, posix_time=0x%016llX", posix_time); | ||||
| 
 | ||||
|         CalendarTime calendar_time{2018, 1, 1, 0, 0, 0}; | ||||
|         CalendarAdditionalInfo additional_info{}; | ||||
| @ -109,28 +109,28 @@ void Module::Interface::GetStandardUserSystemClock(Kernel::HLERequestContext& ct | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<ISystemClock>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_Time, "called"); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::GetStandardNetworkSystemClock(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<ISystemClock>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_Time, "called"); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::GetStandardSteadyClock(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<ISteadyClock>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_Time, "called"); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::GetTimeZoneService(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushIpcInterface<ITimeZoneService>(); | ||||
|     LOG_DEBUG(Service, "called"); | ||||
|     LOG_DEBUG(Service_Time, "called"); | ||||
| } | ||||
| 
 | ||||
| Module::Interface::Interface(std::shared_ptr<Module> time, const char* name) | ||||
|  | ||||
| @ -429,7 +429,7 @@ private: | ||||
|         auto& output_buffer = ctx.BufferDescriptorB()[0]; | ||||
| 
 | ||||
|         auto buffer_queue = nv_flinger->GetBufferQueue(id); | ||||
| 
 | ||||
|         LOG_WARNING(Service_VI, "(STUBBED) called, transaction=%x", transaction); | ||||
|         if (transaction == TransactionId::Connect) { | ||||
|             IGBPConnectRequestParcel request{input_data}; | ||||
|             IGBPConnectResponseParcel response{1280, 720}; | ||||
| @ -487,7 +487,6 @@ private: | ||||
|             ASSERT_MSG(false, "Unimplemented"); | ||||
|         } | ||||
| 
 | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|     } | ||||
| @ -498,7 +497,7 @@ private: | ||||
|         s32 addval = rp.PopRaw<s32>(); | ||||
|         u32 type = rp.Pop<u32>(); | ||||
| 
 | ||||
|         LOG_WARNING(Service, "(STUBBED) called id=%u, addval=%08X, type=%08X", id, addval, type); | ||||
|         LOG_WARNING(Service_VI, "(STUBBED) called id=%u, addval=%08X, type=%08X", id, addval, type); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|     } | ||||
| @ -512,7 +511,7 @@ private: | ||||
| 
 | ||||
|         // TODO(Subv): Find out what this actually is.
 | ||||
| 
 | ||||
|         LOG_WARNING(Service, "(STUBBED) called id=%u, unknown=%08X", id, unknown); | ||||
|         LOG_WARNING(Service_VI, "(STUBBED) called id=%u, unknown=%08X", id, unknown); | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushCopyObjects(buffer_queue->GetNativeHandle()); | ||||
| @ -534,7 +533,7 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void SetLayerZ(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u64 layer_id = rp.Pop<u64>(); | ||||
|         u64 z_value = rp.Pop<u64>(); | ||||
| @ -560,7 +559,7 @@ public: | ||||
| 
 | ||||
| private: | ||||
|     void CloseDisplay(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u64 display = rp.Pop<u64>(); | ||||
| 
 | ||||
| @ -569,7 +568,7 @@ private: | ||||
|     } | ||||
| 
 | ||||
|     void CreateManagedLayer(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u32 unknown = rp.Pop<u32>(); | ||||
|         rp.Skip(1, false); | ||||
| @ -584,7 +583,7 @@ private: | ||||
|     } | ||||
| 
 | ||||
|     void AddToLayerStack(Kernel::HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service, "(STUBBED) called"); | ||||
|         LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|         IPC::RequestParser rp{ctx}; | ||||
|         u32 stack = rp.Pop<u32>(); | ||||
|         u64 layer_id = rp.Pop<u64>(); | ||||
| @ -597,7 +596,7 @@ private: | ||||
| }; | ||||
| 
 | ||||
| void IApplicationDisplayService::GetRelayService(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| @ -605,7 +604,7 @@ void IApplicationDisplayService::GetRelayService(Kernel::HLERequestContext& ctx) | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::GetSystemDisplayService(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| @ -613,7 +612,7 @@ void IApplicationDisplayService::GetSystemDisplayService(Kernel::HLERequestConte | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::GetManagerDisplayService(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| @ -622,7 +621,7 @@ void IApplicationDisplayService::GetManagerDisplayService(Kernel::HLERequestCont | ||||
| 
 | ||||
| void IApplicationDisplayService::GetIndirectDisplayTransactionService( | ||||
|     Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| @ -630,7 +629,7 @@ void IApplicationDisplayService::GetIndirectDisplayTransactionService( | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::OpenDisplay(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     auto name_buf = rp.PopRaw<std::array<u8, 0x40>>(); | ||||
|     auto end = std::find(name_buf.begin(), name_buf.end(), '\0'); | ||||
| @ -645,7 +644,7 @@ void IApplicationDisplayService::OpenDisplay(Kernel::HLERequestContext& ctx) { | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::CloseDisplay(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u64 display_id = rp.Pop<u64>(); | ||||
| 
 | ||||
| @ -654,7 +653,7 @@ void IApplicationDisplayService::CloseDisplay(Kernel::HLERequestContext& ctx) { | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::OpenLayer(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     auto name_buf = rp.PopRaw<std::array<u8, 0x40>>(); | ||||
|     auto end = std::find(name_buf.begin(), name_buf.end(), '\0'); | ||||
| @ -704,7 +703,7 @@ void IApplicationDisplayService::CreateStrayLayer(Kernel::HLERequestContext& ctx | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::DestroyStrayLayer(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u64 layer_id = rp.Pop<u64>(); | ||||
| @ -714,7 +713,7 @@ void IApplicationDisplayService::DestroyStrayLayer(Kernel::HLERequestContext& ct | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::SetLayerScalingMode(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u32 scaling_mode = rp.Pop<u32>(); | ||||
|     u64 unknown = rp.Pop<u64>(); | ||||
| @ -724,7 +723,7 @@ void IApplicationDisplayService::SetLayerScalingMode(Kernel::HLERequestContext& | ||||
| } | ||||
| 
 | ||||
| void IApplicationDisplayService::GetDisplayVsyncEvent(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     u64 display_id = rp.Pop<u64>(); | ||||
| 
 | ||||
|  | ||||
| @ -11,7 +11,7 @@ namespace Service { | ||||
| namespace VI { | ||||
| 
 | ||||
| void VI_M::GetDisplayService(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|  | ||||
| @ -11,7 +11,7 @@ namespace Service { | ||||
| namespace VI { | ||||
| 
 | ||||
| void VI_S::GetDisplayService(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|  | ||||
| @ -11,7 +11,7 @@ namespace Service { | ||||
| namespace VI { | ||||
| 
 | ||||
| void VI_U::GetDisplayService(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_VI, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei