windows-nt/Source/XPSP1/NT/sdktools/vdmperf/calcperf.h
2020-09-26 16:20:57 +08:00

167 lines
3 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
perfmtrp.h
Abstract:
This module contains NT/Win32 Perfmtr private data and types
Author:
Mark Enstrom (marke) 28-Mar-1991
Revision History:
--*/
#ifndef _CALCPERFH_INCLUDED_
#define _CALCPERFH_INCLUDED_
#define MAX_PROCESSOR 8
#define DATA_LIST_LENGTH 100
#define DELAY_SECONDS 2
//
// Hi-Tech macro to figure out how much a field has changed by.
//
#define delta(FLD) (PerfInfo.FLD - PreviousPerfInfo.FLD)
//
// display const
//
#define IX_PUSHF 0
#define IX_POPF 1
#define IX_IRET 2
#define IX_HLT 3
#define IX_CLI 4
#define IX_STI 5
#define IX_BOP 6
#define IX_SEGNOTP 7
#define IX_VDMOPCODEF 8
#define IX_INTNN 9
#define IX_INTO 10
#define IX_INB 11
#define IX_INW 12
#define IX_OUTB 13
#define IX_OUTW 14
#define IX_INSB 15
#define IX_INSW 16
#define IX_OUTSB 17
#define IX_OUTSW 18
#define SAVE_SUBJECTS 19
#define BORDER_WIDTH 2
#define INDENT_WIDTH 8
#define GRAPH_WIDTH 130
#define GRAPH_HEIGHT 40
#define PERF_METER_CPU_CYCLE 10
//
// time constant for sampling performance
//
#define PERF_TIME_DELAY 1000
//
// types of display modes
//
#define DISPLAY_MODE_CPU_ONLY 0
#define DISPLAY_MODE_CPU 10
#define DISPLAY_MODE_VM 20
#define DISPLAY_MODE_CACHE 30
#define DISPLAY_MODE_POOL 40
#define DISPLAY_MODE_IO 50
#define DISPLAY_MODE_LPC 60
#define DISPLAY_MODE_SVR 70
//
// structure to save screen statistics
//
typedef struct _CPU_DATA_LIST
{
PUCHAR KernelTime;
PUCHAR UserTime;
PUCHAR TotalTime;
} CPU_DATA_LIST,*PCPU_DATA_LIST;
typedef struct _PERF_DATA_LIST
{
PULONG PerfData;
} PERF_DATA_LIST,*PPERF_DATA_LIST;
//
// This info packet is associated with each
// performance item
//
typedef struct tagDISPLAYITEM
{
HDC MemoryDC;
HBITMAP MemoryBitmap;
ULONG Max;
ULONG PositionX;
ULONG PositionY;
ULONG Width;
ULONG Height;
ULONG NumberOfElements;
ULONG CurrentDrawingPos;
RECT Border;
RECT GraphBorder;
RECT TextBorder;
BOOL Display;
BOOL ChangeScale;
ULONG KernelTime[DATA_LIST_LENGTH];
ULONG UserTime[DATA_LIST_LENGTH];
ULONG TotalTime[DATA_LIST_LENGTH];
} DISPLAY_ITEM,*PDISPLAY_ITEM;
//
// flag to activate each menu selection
//
#define DISPLAY_INACTIVE 0
#define DISPLAY_ACTIVE 1
//
// Keep book-keeping info for all processors
//
typedef struct _CPU_VALUE
{
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER IdleTime;
ULONG InterruptCount;
} CPU_VALUE,*PCPU_VALUE;
BOOL
UpdatePerfInfo(
PULONG DataPointer,
ULONG NewDataValue,
PULONG OldMaxValue
);
VOID
InitListData(
PDISPLAY_ITEM PerfListItem,
ULONG NumberOfItems
);
#endif /* _CALCPERFH_INCLUDED */