mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	service: time: Implement GetClockSnapshotFromSystemClockContext.
This commit is contained in:
		
							parent
							
								
									fab2607c6b
								
							
						
					
					
						commit
						a4e840181c
					
				| @ -28,7 +28,7 @@ Time::Time(std::shared_ptr<Module> module, Core::System& system, const char* nam | ||||
|         {201, nullptr, "GetStandardUserSystemClockAutomaticCorrectionUpdatedTime"}, | ||||
|         {300, &Time::CalculateMonotonicSystemClockBaseTimePoint, "CalculateMonotonicSystemClockBaseTimePoint"}, | ||||
|         {400, &Time::GetClockSnapshot, "GetClockSnapshot"}, | ||||
|         {401, nullptr, "GetClockSnapshotFromSystemClockContext"}, | ||||
|         {401, &Time::GetClockSnapshotFromSystemClockContext, "GetClockSnapshotFromSystemClockContext"}, | ||||
|         {500, nullptr, "CalculateStandardUserSystemClockDifferenceByUser"}, | ||||
|         {501, nullptr, "CalculateSpanBetween"}, | ||||
|     }; | ||||
|  | ||||
| @ -242,7 +242,7 @@ void Module::Interface::CalculateMonotonicSystemClockBaseTimePoint(Kernel::HLERe | ||||
| void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_Time, "called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto type = rp.PopRaw<u8>(); | ||||
|     const auto type{rp.PopRaw<u8>()}; | ||||
| 
 | ||||
|     Clock::SystemClockContext user_context{}; | ||||
|     if (const ResultCode result{ | ||||
| @ -277,6 +277,29 @@ void Module::Interface::GetClockSnapshot(Kernel::HLERequestContext& ctx) { | ||||
|     ctx.WriteBuffer(&clock_snapshot, sizeof(Clock::ClockSnapshot)); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::GetClockSnapshotFromSystemClockContext(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_Time, "called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto type{rp.PopRaw<u8>()}; | ||||
|     rp.AlignWithPadding(); | ||||
| 
 | ||||
|     const Clock::SystemClockContext user_context{rp.PopRaw<Clock::SystemClockContext>()}; | ||||
|     const Clock::SystemClockContext network_context{rp.PopRaw<Clock::SystemClockContext>()}; | ||||
| 
 | ||||
|     Clock::ClockSnapshot clock_snapshot{}; | ||||
|     if (const ResultCode result{GetClockSnapshotFromSystemClockContextInternal( | ||||
|             &ctx.GetThread(), user_context, network_context, type, clock_snapshot)}; | ||||
|         result != RESULT_SUCCESS) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(result); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     ctx.WriteBuffer(&clock_snapshot, sizeof(Clock::ClockSnapshot)); | ||||
| } | ||||
| 
 | ||||
| void Module::Interface::GetSharedMemoryNativeHandle(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_Time, "called"); | ||||
|     IPC::ResponseBuilder rb{ctx, 2, 1}; | ||||
| @ -290,7 +313,7 @@ Module::Interface::Interface(std::shared_ptr<Module> module, Core::System& syste | ||||
| Module::Interface::~Interface() = default; | ||||
| 
 | ||||
| void InstallInterfaces(Core::System& system) { | ||||
|     auto module = std::make_shared<Module>(system); | ||||
|     auto module{std::make_shared<Module>(system)}; | ||||
|     std::make_shared<Time>(module, system, "time:a")->InstallAsService(system.ServiceManager()); | ||||
|     std::make_shared<Time>(module, system, "time:s")->InstallAsService(system.ServiceManager()); | ||||
|     std::make_shared<Time>(module, system, "time:u")->InstallAsService(system.ServiceManager()); | ||||
|  | ||||
| @ -30,6 +30,7 @@ public: | ||||
|         void IsStandardNetworkSystemClockAccuracySufficient(Kernel::HLERequestContext& ctx); | ||||
|         void CalculateMonotonicSystemClockBaseTimePoint(Kernel::HLERequestContext& ctx); | ||||
|         void GetClockSnapshot(Kernel::HLERequestContext& ctx); | ||||
|         void GetClockSnapshotFromSystemClockContext(Kernel::HLERequestContext& ctx); | ||||
|         void GetSharedMemoryNativeHandle(Kernel::HLERequestContext& ctx); | ||||
| 
 | ||||
|     private: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei