Mercurial > games > semicongine
diff fuhtark_test/include/winapi/timeprov.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/timeprov.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,110 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef TIMEPROV_H +#define TIMEPROV_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define wszW32TimeRegKeyTimeProviders L"System\\CurrentControlSet\\Services\\W32Time\\TimeProviders" +#define wszW32TimeRegKeyPolicyTimeProviders L"Software\\Policies\\Microsoft\\W32Time\\TimeProviders" +#define wszW32TimeRegValueEnabled L"Enabled" +#define wszW32TimeRegValueDllName L"DllName" +#define wszW32TimeRegValueInputProvider L"InputProvider" + +#define TSF_Hardware 0x00000001 +#define TSF_Authenticated 0x00000002 + + typedef enum TimeProvCmd { + TPC_TimeJumped,TPC_UpdateConfig,TPC_PollIntervalChanged,TPC_GetSamples,TPC_NetTopoChange,TPC_Query,TPC_Shutdown + } TimeProvCmd; + + typedef enum TimeSysInfo { + TSI_LastSyncTime,TSI_ClockTickSize,TSI_ClockPrecision,TSI_CurrentTime,TSI_PhaseOffset,TSI_TickCount,TSI_LeapFlags,TSI_Stratum, + TSI_ReferenceIdentifier,TSI_PollInterval,TSI_RootDelay,TSI_RootDispersion,TSI_TSFlags + } TimeSysInfo; + + typedef enum TimeJumpedFlags { + TJF_Default=0,TJF_UserRequested=1 + } TimeJumpedFlags; + + typedef enum NetTopoChangeFlags { + NTC_Default=0,NTC_UserRequested=1 + } NetTopoChangeFlags; + + typedef enum TimeProvState { + TPS_Running,TPS_Error + } TimeProvState; + + struct SetProviderStatusInfo; + + typedef void (WINAPI SetProviderStatusInfoFreeFunc)(struct SetProviderStatusInfo *pspsi); + + typedef struct SetProviderStatusInfo { + TimeProvState tpsCurrentState; + DWORD dwStratum; + LPWSTR wszProvName; + HANDLE hWaitEvent; + SetProviderStatusInfoFreeFunc *pfnFree; + HRESULT *pHr; + DWORD *pdwSysStratum; + } SetProviderStatusInfo; + + typedef HRESULT (WINAPI GetTimeSysInfoFunc)(TimeSysInfo eInfo,void *pvInfo); + typedef HRESULT (WINAPI LogTimeProvEventFunc)(WORD wType,WCHAR *wszProvName,WCHAR *wszMessage); + typedef HRESULT (WINAPI AlertSamplesAvailFunc)(void); + typedef HRESULT (WINAPI SetProviderStatusFunc)(SetProviderStatusInfo *pspsi); + + typedef struct TimeProvSysCallbacks { + DWORD dwSize; + GetTimeSysInfoFunc *pfnGetTimeSysInfo; + LogTimeProvEventFunc *pfnLogTimeProvEvent; + AlertSamplesAvailFunc *pfnAlertSamplesAvail; + SetProviderStatusFunc *pfnSetProviderStatus; + } TimeProvSysCallbacks; + + typedef void *TimeProvArgs; + + typedef struct TimeSample { + DWORD dwSize; + DWORD dwRefid; + __MINGW_EXTENSION signed __int64 toOffset; + __MINGW_EXTENSION signed __int64 toDelay; + __MINGW_EXTENSION unsigned __int64 tpDispersion; + __MINGW_EXTENSION unsigned __int64 nSysTickCount; + __MINGW_EXTENSION signed __int64 nSysPhaseOffset; + BYTE nLeapFlags; + BYTE nStratum; + DWORD dwTSFlags; + WCHAR wszUniqueName[256]; + } TimeSample; + + typedef struct TpcGetSamplesArgs { + BYTE *pbSampleBuf; + DWORD cbSampleBuf; + DWORD dwSamplesReturned; + DWORD dwSamplesAvailable; + } TpcGetSamplesArgs; + + typedef struct TpcTimeJumpedArgs { + TimeJumpedFlags tjfFlags; + } TpcTimeJumpedArgs; + + typedef struct TpcNetTopoChangeArgs { + NetTopoChangeFlags ntcfFlags; + } TpcNetTopoChangeArgs; + + typedef void *TimeProvHandle; + + HRESULT WINAPI TimeProvOpen(WCHAR *wszName,TimeProvSysCallbacks *pSysCallbacks,TimeProvHandle *phTimeProv); + HRESULT WINAPI TimeProvCommand(TimeProvHandle hTimeProv,TimeProvCmd eCmd,TimeProvArgs pvArgs); + HRESULT WINAPI TimeProvClose(TimeProvHandle hTimeProv); + +#ifdef __cplusplus +} +#endif +#endif
