windows-nt/Source/XPSP1/NT/base/ntdll/ntnap.h
2020-09-26 16:20:57 +08:00

74 lines
1.3 KiB
C

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
ntnap.h
Abstract:
This module contains the data structure decalrations for
profiling of NT API's.
Author:
Russ Blake (russbl) 22-Apr-1991
Revision History:
--*/
//
// Initialization of minimum times
//
#define MAX_LONG 0x7FFFFFFFL
#define MAX_ULONG 0xFFFFFFFFL
//
// Timer calibration
//
#define NUM_ITERATIONS 2000 // Number of iterations
#define MIN_ACCEPTABLEOVERHEAD 10 // Minimum overhead allowed
#define NAP_CALIBRATION_SERVICE_NUMBER -1L // Calibration Routine Number
typedef struct _NAPCONTROL {
//
// The following assures the area will be initialized only once.
// Note: Assumes the section is given to us zero filled.
//
BOOLEAN Initialized;
//
// Profiling control. If NapPaused > 0, NapRecordInfo will
// collect no data. Used to keep initialization and dumping
// of data itself from being profiled.
//
BOOLEAN Paused;
} NAPCONTROL, *PNAPCONTROL;
extern PCHAR NapNames[];
//
// Called internally
//
VOID NapDllInit (VOID);
VOID NapRecordInfo (IN ULONG, IN LARGE_INTEGER[]);
NTSTATUS NapCreateDataSection (PNAPCONTROL *);
//
// Called by us
//
extern VOID NapCalibrate (VOID);
extern VOID NapSpinOnSpinLock (ULONG *);
extern VOID NapReleaseSpinLock (ULONG *);