/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * NT interval timers * */ /* Mozilla's build system defines this globally. */ #ifdef WIN32_LEAN_AND_MEAN #undef WIN32_LEAN_AND_MEAN #endif #include "primpl.h" #ifdef WINCE typedef DWORD (*IntervalFuncType)(void); static IntervalFuncType intervalFunc; #endif void _PR_MD_INTERVAL_INIT() { #ifdef WINCE HMODULE mmtimerlib = LoadLibraryW(L"mmtimer.dll"); /* XXX leaked! */ if (mmtimerlib) { intervalFunc = (IntervalFuncType)GetProcAddress(mmtimerlib, "timeGetTime"); } else { intervalFunc = &GetTickCount; } #endif } PRIntervalTime _PR_MD_GET_INTERVAL() { /* milliseconds since system start */ #ifdef WINCE return (*intervalFunc)(); #else return timeGetTime(); #endif } PRIntervalTime _PR_MD_INTERVAL_PER_SEC() { return 1000; }