Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

105 lines
2.0 KiB

/**
*** Copyright (C) 1996-97 Intel Corporation. All rights reserved.
***
*** The information and source code contained herein is the exclusive
*** property of Intel Corporation and may not be disclosed, examined
*** or reproduced in whole or in part without explicit written authorization
*** from the company.
**/
/*++
Copyright (c) 1995 Intel Corporation
Module Name:
simperfc.c
Abstract:
This module implements the routines to support performance counters.
Author:
14-Apr-1995
Environment:
Kernel mode
Revision History:
--*/
#include "halp.h"
LARGE_INTEGER
KeQueryPerformanceCounter (
OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL
)
/*++
Routine Description:
This routine returns current 64-bit performance counter and,
optionally, the Performance Frequency.
In the simulation environment, this support is not needed.
However, the performance monitor of the architecture may be
used to implement this feature.
Arguments:
PerformanceFrequency - optionally, supplies the address
of a variable to receive the performance counter frequency.
Return Value:
Current value of the performance counter will be returned.
--*/
{
LARGE_INTEGER Result;
Result.QuadPart = __getReg(CV_IA64_ApITC);
if (ARGUMENT_PRESENT(PerformanceFrequency)) {
PerformanceFrequency->QuadPart = 10000000; // 100ns/10MHz clock
}
return Result;
}
VOID
HalCalibratePerformanceCounter (
IN volatile PLONG Number,
IN ULONGLONG NewCount
)
/*++
Routine Description:
This routine resets the performance counter value for the current
processor to zero. The reset is done such that the resulting value
is closely synchronized with other processors in the configuration.
In the simulation environment, the performance counter feature is
not supported. This routine does nothing.
Arguments:
Number - Supplies a pointer to count of the number of processors in
the configuration.
Return Value:
None.
--*/
{
*Number = 0;
return;
}