mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	time: Implement ISteadyClock::GetCurrentTimePoint.
This commit is contained in:
		
							parent
							
								
									748c0de539
								
							
						
					
					
						commit
						3258db29da
					
				@ -4,6 +4,7 @@
 | 
			
		||||
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include "common/logging/log.h"
 | 
			
		||||
#include "core/core_timing.h"
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/kernel/client_port.h"
 | 
			
		||||
#include "core/hle/kernel/client_session.h"
 | 
			
		||||
@ -45,7 +46,21 @@ private:
 | 
			
		||||
 | 
			
		||||
class ISteadyClock final : public ServiceFramework<ISteadyClock> {
 | 
			
		||||
public:
 | 
			
		||||
    ISteadyClock() : ServiceFramework("ISteadyClock") {}
 | 
			
		||||
    ISteadyClock() : ServiceFramework("ISteadyClock") {
 | 
			
		||||
        static const FunctionInfo functions[] = {
 | 
			
		||||
            {0, &ISteadyClock::GetCurrentTimePoint, "GetCurrentTimePoint"},
 | 
			
		||||
        };
 | 
			
		||||
        RegisterHandlers(functions);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void GetCurrentTimePoint(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_DEBUG(Service, "called");
 | 
			
		||||
        SteadyClockTimePoint steady_clock_time_point{cyclesToMs(CoreTiming::GetTicks()) / 1000};
 | 
			
		||||
        IPC::ResponseBuilder rb{ctx, (sizeof(SteadyClockTimePoint) / 4) + 2};
 | 
			
		||||
        rb.Push(RESULT_SUCCESS);
 | 
			
		||||
        rb.PushRaw(steady_clock_time_point);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class ITimeZoneService final : public ServiceFramework<ITimeZoneService> {
 | 
			
		||||
 | 
			
		||||
@ -40,6 +40,12 @@ struct SystemClockContext {
 | 
			
		||||
static_assert(sizeof(SystemClockContext) == 0x20,
 | 
			
		||||
              "SystemClockContext structure has incorrect size");
 | 
			
		||||
 | 
			
		||||
struct SteadyClockTimePoint {
 | 
			
		||||
    u64 value;
 | 
			
		||||
    INSERT_PADDING_WORDS(4);
 | 
			
		||||
};
 | 
			
		||||
static_assert(sizeof(SteadyClockTimePoint) == 0x18, "SteadyClockTimePoint is incorrect size");
 | 
			
		||||
 | 
			
		||||
class Module final {
 | 
			
		||||
public:
 | 
			
		||||
    class Interface : public ServiceFramework<Interface> {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user