/**************************************************************************** * * Ultra Long Period Timer * * ======================================================================== * * The contents of this file are subject to the SciTech MGL Public * License Version 1.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.scitechsoft.com/mgl-license.txt * * Software distributed under the License is distributed on an * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc. * * The Initial Developer of the Original Code is SciTech Software, Inc. * All Rights Reserved. * * ======================================================================== * * Language: ANSI C * Environment: 32-bit Windows VxD * * Description: VxD specific code for the CPU detection module. * ****************************************************************************/ /*----------------------------- Implementation ----------------------------*/ /**************************************************************************** REMARKS: Do nothing for VxD's ****************************************************************************/ #define SetMaxThreadPriority() 0 /**************************************************************************** REMARKS: Do nothing for VxD's ****************************************************************************/ #define RestoreThreadPriority(i) (void)(i) /**************************************************************************** REMARKS: Initialise the counter and return the frequency of the counter. ****************************************************************************/ static void GetCounterFrequency( CPU_largeInteger *freq) { KeQueryPerformanceCounter((LARGE_INTEGER*)freq); } /**************************************************************************** REMARKS: Read the counter and return the counter value. ****************************************************************************/ #define GetCounter(t) \ { \ LARGE_INTEGER lt = KeQueryPerformanceCounter(NULL); \ (t)->low = lt.LowPart; \ (t)->high = lt.HighPart; \ }