kernel32: Implemented GetTickCount64.

This commit is contained in:
Alexandre Julliard 2007-07-11 14:04:54 +02:00
parent 6544d9ee3e
commit 40fb7ca168
3 changed files with 21 additions and 1 deletions

View File

@ -636,6 +636,7 @@
@ stdcall GetThreadSelectorEntry(long long ptr)
@ stdcall GetThreadTimes(long ptr ptr ptr ptr)
@ stdcall GetTickCount()
@ stdcall -ret64 GetTickCount64()
@ stdcall GetTimeFormatA(long long ptr str ptr long)
@ stdcall GetTimeFormatW(long long ptr wstr ptr long)
@ stdcall GetTimeZoneInformation(ptr)

View File

@ -46,6 +46,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(process);
extern int __wine_set_signal_handler(unsigned, int (*)(unsigned));
static ULONGLONG server_start_time;
/***********************************************************************
* KERNEL thread initialisation routine
*/
@ -112,12 +114,16 @@ static void set_entry_point( HMODULE module, const char *name, DWORD rva )
static BOOL process_attach( HMODULE module )
{
SYSTEM_INFO si;
SYSTEM_TIMEOFDAY_INFORMATION ti;
RTL_USER_PROCESS_PARAMETERS *params = NtCurrentTeb()->Peb->ProcessParameters;
/* FIXME: should probably be done in ntdll */
GetSystemInfo( &si );
NtCurrentTeb()->Peb->NumberOfProcessors = si.dwNumberOfProcessors;
NtQuerySystemInformation( SystemTimeOfDayInformation, &ti, sizeof(ti), NULL );
server_start_time = ti.liKeBootTime.QuadPart;
/* Setup registry locale information */
LOCALE_InitRegistry();
@ -236,6 +242,18 @@ INT WINAPI MulDiv( INT nMultiplicand, INT nMultiplier, INT nDivisor)
}
/******************************************************************************
* GetTickCount64 (KERNEL32.@)
*/
ULONGLONG WINAPI GetTickCount64(void)
{
LARGE_INTEGER now;
NtQuerySystemTime( &now );
return (now.QuadPart - server_start_time) / 10000;
}
/***********************************************************************
* GetTickCount (KERNEL32.@)
*
@ -254,5 +272,5 @@ INT WINAPI MulDiv( INT nMultiplicand, INT nMultiplier, INT nDivisor)
*/
DWORD WINAPI GetTickCount(void)
{
return NtGetTickCount();
return GetTickCount64();
}

View File

@ -1679,6 +1679,7 @@ DWORD WINAPI GetTempPathA(DWORD,LPSTR);
DWORD WINAPI GetTempPathW(DWORD,LPWSTR);
#define GetTempPath WINELIB_NAME_AW(GetTempPath)
DWORD WINAPI GetTickCount(void);
ULONGLONG WINAPI GetTickCount64(void);
DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
BOOL WINAPI GetThreadContext(HANDLE,CONTEXT *);
INT WINAPI GetThreadPriority(HANDLE);