windows-nt/Source/XPSP1/NT/base/tools/pperf/dll/p6data.c

1140 lines
33 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1992 Microsoft Corporation
Module Name:
p6data.c
Abstract:
a file containing the constant data structures used by the Performance
Monitor data for the P5 Extensible Objects.
This file contains a set of constant data structures which are
currently defined for the P5 Extensible Objects. This is an
example of how other such objects could be defined.
Created:
Russ Blake 24 Dec 93
Revision History:
None.
--*/
//
// Include Files
//
#include <windows.h>
#include <winperf.h>
#include <assert.h>
#include "p5ctrnam.h"
#include "pentdata.h"
//
// Constant structure initializations for the structure defined in p6data.h
//
P6_DATA_DEFINITION P6DataDefinition = {
{
sizeof(P6_DATA_DEFINITION) + sizeof(P6_COUNTER_DATA),
sizeof(P6_DATA_DEFINITION),
sizeof(PERF_OBJECT_TYPE),
PENTIUM,
0,
PENTIUM,
0,
PERF_DETAIL_WIZARD,
(sizeof(P6_DATA_DEFINITION)-sizeof(PERF_OBJECT_TYPE))/
sizeof(PERF_COUNTER_DEFINITION),
0,
0,
0
},
{ // 1
sizeof(PERF_COUNTER_DEFINITION),
P6_LD_BLOCKS,
0,
P6_LD_BLOCKS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llStoreBufferBlocks),
(DWORD)&((PP6_COUNTER_DATA)0)->llStoreBufferBlocks
},
{ // 2
sizeof(PERF_COUNTER_DEFINITION),
P6_SB_DRAINS,
0,
P6_SB_DRAINS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llStoreBufferDrainCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llStoreBufferDrainCycles
},
{ // 3
sizeof(PERF_COUNTER_DEFINITION),
P6_MISALIGN_MEM_REF,
0,
P6_MISALIGN_MEM_REF,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llMisalignedDataRef),
(DWORD)&((PP6_COUNTER_DATA)0)->llMisalignedDataRef
},
{ // 4
sizeof(PERF_COUNTER_DEFINITION),
P6_SEGMENT_REG_LOADS,
0,
P6_SEGMENT_REG_LOADS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llSegmentLoads),
(DWORD)&((PP6_COUNTER_DATA)0)->llSegmentLoads
},
{ // 5
sizeof(PERF_COUNTER_DEFINITION),
P6_FP_COMP_OPS_EXE,
0,
P6_FP_COMP_OPS_EXE,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llFLOPSExecuted),
(DWORD)&((PP6_COUNTER_DATA)0)->llFLOPSExecuted
},
{ // 6
sizeof(PERF_COUNTER_DEFINITION),
P6_FP_ASSIST,
0,
P6_FP_ASSIST,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llMicrocodeFPExceptions),
(DWORD)&((PP6_COUNTER_DATA)0)->llMicrocodeFPExceptions
},
{ // 7
sizeof(PERF_COUNTER_DEFINITION),
P6_MUL,
0,
P6_MUL,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llMultiplies),
(DWORD)&((PP6_COUNTER_DATA)0)->llMultiplies
},
{ // 8
sizeof(PERF_COUNTER_DEFINITION),
P6_DIV,
0,
P6_DIV,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llDivides),
(DWORD)&((PP6_COUNTER_DATA)0)->llDivides
},
{ // 9
sizeof(PERF_COUNTER_DEFINITION),
P6_CYCLES_DIV_BUSY,
0,
P6_CYCLES_DIV_BUSY,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llDividerBusyCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llDividerBusyCycles
},
{ // 10
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_ADS,
0,
P6_L2_ADS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2AddressStrobes),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2AddressStrobes
},
{ // 11
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_DBUS_BUSY,
0,
P6_L2_DBUS_BUSY,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2DataBusBusyCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataBusBusyCycles
},
{ // 12
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_DBUS_BUSY_RD,
0,
P6_L2_DBUS_BUSY_RD,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2DataBusToCpuBusyCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataBusToCpuBusyCycles
},
{ // 13
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_LINES_IN,
0,
P6_L2_LINES_IN,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesAllocated),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesAllocated
},
{ // 14
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_M_LINES_IN,
0,
P6_L2_M_LINES_IN,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesMState),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesMState
},
{ //15
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_LINES_OUT,
0,
P6_L2_LINES_OUT,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesRemoved),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesRemoved
},
{ // 16
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_M_LINES_OUT,
0,
P6_L2_M_LINES_OUT,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2LinesMStateRemoved),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2LinesMStateRemoved
},
{ // 17
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_IFETCH,
0,
P6_L2_IFETCH,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2InstructionFetches),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2InstructionFetches
},
{ // 18
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_LD,
0,
P6_L2_LD,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2DataLoads),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataLoads
},
{ // 19
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_ST,
0,
P6_L2_ST,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2DataStores),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2DataStores
},
{ // 20
sizeof(PERF_COUNTER_DEFINITION),
P6_L2_RQSTS,
0,
P6_L2_RQSTS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llL2Requests),
(DWORD)&((PP6_COUNTER_DATA)0)->llL2Requests
},
{ // 21
sizeof(PERF_COUNTER_DEFINITION),
P6_DATA_MEM_REFS,
0,
P6_DATA_MEM_REFS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llDataMemoryReferences),
(DWORD)&((PP6_COUNTER_DATA)0)->llDataMemoryReferences
},
{ // 22
sizeof(PERF_COUNTER_DEFINITION),
P6_DCU_LINES_IN,
0,
P6_DCU_LINES_IN,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llDCULinesAllocated),
(DWORD)&((PP6_COUNTER_DATA)0)->llDCULinesAllocated
},
{ //23
sizeof(PERF_COUNTER_DEFINITION),
P6_DCU_M_LINES_IN,
0,
P6_DCU_M_LINES_IN,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llDCUMStateLinesAllocated),
(DWORD)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesAllocated
},
{ // 24
sizeof(PERF_COUNTER_DEFINITION),
P6_DCU_M_LINES_OUT,
0,
P6_DCU_M_LINES_OUT,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llDCUMStateLinesEvicted),
(DWORD)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesEvicted
},
{ // 25
sizeof(PERF_COUNTER_DEFINITION),
P6_DCU_MISS_OUTSTANDING,
0,
P6_DCU_MISS_OUTSTANDING,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llWeightedDCUMissesOutstd),
(DWORD)&((PP6_COUNTER_DATA)0)->llWeightedDCUMissesOutstd
},
{ // 26
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_REQ_OUTSTANDING,
0,
P6_BUS_REQ_OUTSTANDING,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusRequestsOutstanding),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusRequestsOutstanding
},
{ // 27
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_BNR_DRV,
0,
P6_BUS_BNR_DRV,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusBNRPinDriveCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusBNRPinDriveCycles
},
{ // 28
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_DRDY_CLOCKS,
0,
P6_BUS_DRDY_CLOCKS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusDRDYAssertedClocks),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusDRDYAssertedClocks
},
{ // 29
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_LOCK_CLOCKS,
0,
P6_BUS_LOCK_CLOCKS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusLockAssertedClocks),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusLockAssertedClocks
},
{ //30
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_DATA_RCV,
0,
P6_BUS_DATA_RCV,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusClocksReceivingData),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusClocksReceivingData
},
{ // 31
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_BRD,
0,
P6_BUS_TRANS_BRD,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusBurstReadTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusBurstReadTransactions
},
{ // 32
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_RFO,
0,
P6_BUS_TRANS_RFO,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusReadForOwnershipTrans),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusReadForOwnershipTrans
},
{ // 33
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_WB,
0,
P6_BUS_TRANS_WB,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusWritebackTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusWritebackTransactions
},
{ // 34
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_IFETCH,
0,
P6_BUS_TRANS_IFETCH,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusInstructionFetches),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusInstructionFetches
},
{ // 35
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_INVAL,
0,
P6_BUS_TRANS_INVAL,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusInvalidateTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusInvalidateTransactions
},
{ // 36
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_PWR,
0,
P6_BUS_TRANS_PWR,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusPartialWriteTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusPartialWriteTransactions
},
{ // 37
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_P,
0,
P6_BUS_TRANS_P,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusPartialTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusPartialTransactions
},
{ // 38
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_IO,
0,
P6_BUS_TRANS_IO,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusIOTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusIOTransactions
},
{ // 39
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_DEF,
0,
P6_BUS_TRANS_DEF,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusDeferredTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusDeferredTransactions
},
{ // 40
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_BURST,
0,
P6_BUS_TRANS_BURST,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusBurstTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusBurstTransactions
},
{ // 41
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_MEM,
0,
P6_BUS_TRANS_MEM,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusMemoryTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusMemoryTransactions
},
{ // 42
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_TRANS_ANY,
0,
P6_BUS_TRANS_ANY,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusAllTransactions),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusAllTransactions
},
{ // 43
sizeof(PERF_COUNTER_DEFINITION),
P6_CPU_CLK_UNHALTED,
0,
P6_CPU_CLK_UNHALTED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llCPUWasNotHaltedCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llCPUWasNotHaltedCycles
},
{ // 44
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_HIT_DRV,
0,
P6_BUS_HIT_DRV,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusCPUDrivesHitCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHitCycles
},
{ // 45
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_HITM_DRV,
0,
P6_BUS_HITM_DRV,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusCPUDrivesHITMCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHITMCycles
},
{ // 46
sizeof(PERF_COUNTER_DEFINITION),
P6_BUS_SNOOP_STALL,
0,
P6_BUS_SNOOP_STALL,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBusSnoopStalledCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llBusSnoopStalledCycles
},
{ // 47
sizeof(PERF_COUNTER_DEFINITION),
P6_IFU_IFETCH,
0,
P6_IFU_IFETCH,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInstructionFetches),
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionFetches
},
{ // 48
sizeof(PERF_COUNTER_DEFINITION),
P6_IFU_IFETCH_MISS,
0,
P6_IFU_IFETCH_MISS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInstructionFetchMisses),
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionFetchMisses
},
{ // 49
sizeof(PERF_COUNTER_DEFINITION),
P6_ITLB_MISS,
0,
P6_ITLB_MISS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInstructionTLBMisses),
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionTLBMisses
},
{ // 50
sizeof(PERF_COUNTER_DEFINITION),
P6_IFU_MEM_STALL,
0,
P6_IFU_MEM_STALL,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInstructionFetcthStalledCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionFetcthStalledCycles
},
{ // 51
sizeof(PERF_COUNTER_DEFINITION),
P6_ILD_STALL,
0,
P6_ILD_STALL,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInstructionLenDecoderStalledCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionLenDecoderStalledCycles
},
{ // 52
sizeof(PERF_COUNTER_DEFINITION),
P6_RESOURCE_STALLS,
0,
P6_RESOURCE_STALLS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llResourceRelatedStalls),
(DWORD)&((PP6_COUNTER_DATA)0)->llResourceRelatedStalls
},
{ // 53
sizeof(PERF_COUNTER_DEFINITION),
P6_INST_RETIRED,
0,
P6_INST_RETIRED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInstructionsRetired),
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionsRetired
},
{ // 54
sizeof(PERF_COUNTER_DEFINITION),
P6_FLOPS,
0,
P6_FLOPS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llFPComputeOpersRetired),
(DWORD)&((PP6_COUNTER_DATA)0)->llFPComputeOpersRetired
},
{ // 55
sizeof(PERF_COUNTER_DEFINITION),
P6_UOPS_RETIRED,
0,
P6_UOPS_RETIRED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llUOPsRetired),
(DWORD)&((PP6_COUNTER_DATA)0)->llUOPsRetired
},
{ // 56
sizeof(PERF_COUNTER_DEFINITION),
P6_BR_INST_RETIRED,
0,
P6_BR_INST_RETIRED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBranchesRetired),
(DWORD)&((PP6_COUNTER_DATA)0)->llBranchesRetired
},
{ // 57
sizeof(PERF_COUNTER_DEFINITION),
P6_BR_MISS_PRED_RETIRED,
0,
P6_BR_MISS_PRED_RETIRED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBranchMissPredictionsRetired),
(DWORD)&((PP6_COUNTER_DATA)0)->llBranchMissPredictionsRetired
},
{ // 58
sizeof(PERF_COUNTER_DEFINITION),
P6_CYCLES_INT_MASKED,
0,
P6_CYCLES_INT_MASKED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInterruptsMaskedCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llInterruptsMaskedCycles
},
{ // 59
sizeof(PERF_COUNTER_DEFINITION),
P6_CYCLES_INT_PENDING_AND_MASKED,
0,
P6_CYCLES_INT_PENDING_AND_MASKED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llIntPendingWhileMaskedCycles),
(DWORD)&((PP6_COUNTER_DATA)0)->llIntPendingWhileMaskedCycles
},
{ // 60
sizeof(PERF_COUNTER_DEFINITION),
P6_HW_INT_RX,
0,
P6_HW_INT_RX,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llHardwareInterruptsReceived),
(DWORD)&((PP6_COUNTER_DATA)0)->llHardwareInterruptsReceived
},
{ // 61
sizeof(PERF_COUNTER_DEFINITION),
P6_BR_TAKEN_RETIRED,
0,
P6_BR_TAKEN_RETIRED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llTakenBranchesRetired),
(DWORD)&((PP6_COUNTER_DATA)0)->llTakenBranchesRetired
},
{ // 62
sizeof(PERF_COUNTER_DEFINITION),
P6_BR_MISS_PRED_TAKEN_RET,
0,
P6_BR_MISS_PRED_TAKEN_RET,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llTakenBranchMissPredRetired),
(DWORD)&((PP6_COUNTER_DATA)0)->llTakenBranchMissPredRetired
},
{ // 63
sizeof(PERF_COUNTER_DEFINITION),
P6_INST_DECODED,
0,
P6_INST_DECODED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llInstructionsDecoded),
(DWORD)&((PP6_COUNTER_DATA)0)->llInstructionsDecoded
},
{ // 64
sizeof(PERF_COUNTER_DEFINITION),
P6_PARTIAL_RAT_STALLS,
0,
P6_PARTIAL_RAT_STALLS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llPartialRegisterStalls),
(DWORD)&((PP6_COUNTER_DATA)0)->llPartialRegisterStalls
},
{ // 65
sizeof(PERF_COUNTER_DEFINITION),
P6_BR_INST_DECODED,
0,
P6_BR_INST_DECODED,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBranchesDecoded),
(DWORD)&((PP6_COUNTER_DATA)0)->llBranchesDecoded
},
{ // 66
sizeof(PERF_COUNTER_DEFINITION),
P6_BTB_MISSES,
0,
P6_BTB_MISSES,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBTBMisses),
(DWORD)&((PP6_COUNTER_DATA)0)->llBTBMisses
},
{ // 67
sizeof(PERF_COUNTER_DEFINITION),
P6_BR_BOGUS,
0,
P6_BR_BOGUS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBogusBranches),
(DWORD)&((PP6_COUNTER_DATA)0)->llBogusBranches
},
{ // 68
sizeof(PERF_COUNTER_DEFINITION),
P6_BACLEARS,
0,
P6_BACLEARS,
0,
0,
PERF_DETAIL_WIZARD,
PERF_COUNTER_BULK_COUNT,
sizeof(((PP6_COUNTER_DATA)0)->llBACLEARSAsserted),
(DWORD)&((PP6_COUNTER_DATA)0)->llBACLEARSAsserted
}
};
// load look-up table that maps counter event ID to data field in the
// perf data block
//
DWORD P6IndexToData[] = {
/* 0x00 */ PENT_INDEX_NOT_USED,
/* 0x01 */ PENT_INDEX_NOT_USED,
/* 0x02 */ PENT_INDEX_NOT_USED,
/* 0x03 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llStoreBufferBlocks),
/* 0x04 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llStoreBufferDrainCycles),
/* 0x05 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llMisalignedDataRef),
/* 0x06 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llSegmentLoads),
/* 0x07 */ PENT_INDEX_NOT_USED,
/* 0x08 */ PENT_INDEX_NOT_USED,
/* 0x09 */ PENT_INDEX_NOT_USED,
/* 0x0a */ PENT_INDEX_NOT_USED,
/* 0x0b */ PENT_INDEX_NOT_USED,
/* 0x0c */ PENT_INDEX_NOT_USED,
/* 0x0d */ PENT_INDEX_NOT_USED,
/* 0x0e */ PENT_INDEX_NOT_USED,
/* 0x0f */ PENT_INDEX_NOT_USED,
/* 0x10 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llFLOPSExecuted),
/* 0x11 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llMicrocodeFPExceptions),
/* 0x12 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llMultiplies),
/* 0x13 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDivides),
/* 0x14 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDividerBusyCycles),
/* 0x15 */ PENT_INDEX_NOT_USED,
/* 0x16 */ PENT_INDEX_NOT_USED,
/* 0x17 */ PENT_INDEX_NOT_USED,
/* 0x18 */ PENT_INDEX_NOT_USED,
/* 0x19 */ PENT_INDEX_NOT_USED,
/* 0x1a */ PENT_INDEX_NOT_USED,
/* 0x1b */ PENT_INDEX_NOT_USED,
/* 0x1c */ PENT_INDEX_NOT_USED,
/* 0x1d */ PENT_INDEX_NOT_USED,
/* 0x1e */ PENT_INDEX_NOT_USED,
/* 0x1f */ PENT_INDEX_NOT_USED,
/* 0x20 */ PENT_INDEX_NOT_USED,
/* 0x21 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2AddressStrobes),
/* 0x22 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataBusBusyCycles),
/* 0x23 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataBusToCpuBusyCycles),
/* 0x24 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesAllocated),
/* 0x25 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesMState),
/* 0x26 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesRemoved),
/* 0x27 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2LinesMStateRemoved),
/* 0x28 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2InstructionFetches),
/* 0x29 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataLoads),
/* 0x2a */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2DataStores),
/* 0x2b */ PENT_INDEX_NOT_USED,
/* 0x2c */ PENT_INDEX_NOT_USED,
/* 0x2d */ PENT_INDEX_NOT_USED,
/* 0x2e */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llL2Requests),
/* 0x2f */ PENT_INDEX_NOT_USED,
/* 0x30 */ PENT_INDEX_NOT_USED,
/* 0x31 */ PENT_INDEX_NOT_USED,
/* 0x32 */ PENT_INDEX_NOT_USED,
/* 0x33 */ PENT_INDEX_NOT_USED,
/* 0x34 */ PENT_INDEX_NOT_USED,
/* 0x35 */ PENT_INDEX_NOT_USED,
/* 0x36 */ PENT_INDEX_NOT_USED,
/* 0x37 */ PENT_INDEX_NOT_USED,
/* 0x38 */ PENT_INDEX_NOT_USED,
/* 0x39 */ PENT_INDEX_NOT_USED,
/* 0x3a */ PENT_INDEX_NOT_USED,
/* 0x3b */ PENT_INDEX_NOT_USED,
/* 0x3c */ PENT_INDEX_NOT_USED,
/* 0x3d */ PENT_INDEX_NOT_USED,
/* 0x3e */ PENT_INDEX_NOT_USED,
/* 0x3f */ PENT_INDEX_NOT_USED,
/* 0x40 */ PENT_INDEX_NOT_USED,
/* 0x41 */ PENT_INDEX_NOT_USED,
/* 0x42 */ PENT_INDEX_NOT_USED,
/* 0x43 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDataMemoryReferences),
/* 0x44 */ PENT_INDEX_NOT_USED,
/* 0x45 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDCULinesAllocated),
/* 0x46 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesAllocated),
/* 0x47 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llDCUMStateLinesEvicted),
/* 0x48 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llWeightedDCUMissesOutstd),
/* 0x49 */ PENT_INDEX_NOT_USED,
/* 0x4a */ PENT_INDEX_NOT_USED,
/* 0x4b */ PENT_INDEX_NOT_USED,
/* 0x4c */ PENT_INDEX_NOT_USED,
/* 0x4d */ PENT_INDEX_NOT_USED,
/* 0x4e */ PENT_INDEX_NOT_USED,
/* 0x4f */ PENT_INDEX_NOT_USED,
/* 0x50 */ PENT_INDEX_NOT_USED,
/* 0x51 */ PENT_INDEX_NOT_USED,
/* 0x52 */ PENT_INDEX_NOT_USED,
/* 0x53 */ PENT_INDEX_NOT_USED,
/* 0x54 */ PENT_INDEX_NOT_USED,
/* 0x55 */ PENT_INDEX_NOT_USED,
/* 0x56 */ PENT_INDEX_NOT_USED,
/* 0x57 */ PENT_INDEX_NOT_USED,
/* 0x58 */ PENT_INDEX_NOT_USED,
/* 0x59 */ PENT_INDEX_NOT_USED,
/* 0x5a */ PENT_INDEX_NOT_USED,
/* 0x5b */ PENT_INDEX_NOT_USED,
/* 0x5c */ PENT_INDEX_NOT_USED,
/* 0x5d */ PENT_INDEX_NOT_USED,
/* 0x5e */ PENT_INDEX_NOT_USED,
/* 0x5f */ PENT_INDEX_NOT_USED,
/* 0x60 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusRequestsOutstanding),
/* 0x61 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusBNRPinDriveCycles),
/* 0x62 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusDRDYAssertedClocks),
/* 0x63 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusLockAssertedClocks),
/* 0x64 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusClocksReceivingData),
/* 0x65 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusBurstReadTransactions),
/* 0x66 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusReadForOwnershipTrans),
/* 0x67 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusWritebackTransactions),
/* 0x68 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusInstructionFetches),
/* 0x69 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusInvalidateTransactions),
/* 0x6a */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusPartialWriteTransactions),
/* 0x6b */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusPartialTransactions),
/* 0x6c */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusIOTransactions),
/* 0x6d */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusDeferredTransactions),
/* 0x6e */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusBurstTransactions),
/* 0x6f */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusMemoryTransactions),
/* 0x70 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusAllTransactions),
/* 0x71 */ PENT_INDEX_NOT_USED,
/* 0x72 */ PENT_INDEX_NOT_USED,
/* 0x73 */ PENT_INDEX_NOT_USED,
/* 0x74 */ PENT_INDEX_NOT_USED,
/* 0x75 */ PENT_INDEX_NOT_USED,
/* 0x76 */ PENT_INDEX_NOT_USED,
/* 0x77 */ PENT_INDEX_NOT_USED,
/* 0x78 */ PENT_INDEX_NOT_USED,
/* 0x79 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llCPUWasNotHaltedCycles),
/* 0x7a */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHitCycles),
/* 0x7b */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusCPUDrivesHITMCycles),
/* 0x7c */ PENT_INDEX_NOT_USED,
/* 0x7d */ PENT_INDEX_NOT_USED,
/* 0x7e */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBusSnoopStalledCycles),
/* 0x7f */ PENT_INDEX_NOT_USED,
/* 0x80 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionFetches),
/* 0x81 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionFetchMisses),
/* 0x82 */ PENT_INDEX_NOT_USED,
/* 0x83 */ PENT_INDEX_NOT_USED,
/* 0x84 */ PENT_INDEX_NOT_USED,
/* 0x85 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionTLBMisses),
/* 0x86 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionFetcthStalledCycles),
/* 0x87 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionLenDecoderStalledCycles),
/* 0x88 */ PENT_INDEX_NOT_USED,
/* 0x89 */ PENT_INDEX_NOT_USED,
/* 0x8a */ PENT_INDEX_NOT_USED,
/* 0x8b */ PENT_INDEX_NOT_USED,
/* 0x8c */ PENT_INDEX_NOT_USED,
/* 0x8d */ PENT_INDEX_NOT_USED,
/* 0x8e */ PENT_INDEX_NOT_USED,
/* 0x8f */ PENT_INDEX_NOT_USED,
/* 0x90 */ PENT_INDEX_NOT_USED,
/* 0x91 */ PENT_INDEX_NOT_USED,
/* 0x92 */ PENT_INDEX_NOT_USED,
/* 0x93 */ PENT_INDEX_NOT_USED,
/* 0x94 */ PENT_INDEX_NOT_USED,
/* 0x95 */ PENT_INDEX_NOT_USED,
/* 0x96 */ PENT_INDEX_NOT_USED,
/* 0x97 */ PENT_INDEX_NOT_USED,
/* 0x98 */ PENT_INDEX_NOT_USED,
/* 0x99 */ PENT_INDEX_NOT_USED,
/* 0x9a */ PENT_INDEX_NOT_USED,
/* 0x9b */ PENT_INDEX_NOT_USED,
/* 0x9c */ PENT_INDEX_NOT_USED,
/* 0x9d */ PENT_INDEX_NOT_USED,
/* 0x9e */ PENT_INDEX_NOT_USED,
/* 0x9f */ PENT_INDEX_NOT_USED,
/* 0xa0 */ PENT_INDEX_NOT_USED,
/* 0xa1 */ PENT_INDEX_NOT_USED,
/* 0xa2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llResourceRelatedStalls),
/* 0xa3 */ PENT_INDEX_NOT_USED,
/* 0xa4 */ PENT_INDEX_NOT_USED,
/* 0xa5 */ PENT_INDEX_NOT_USED,
/* 0xa6 */ PENT_INDEX_NOT_USED,
/* 0xa7 */ PENT_INDEX_NOT_USED,
/* 0xa8 */ PENT_INDEX_NOT_USED,
/* 0xa9 */ PENT_INDEX_NOT_USED,
/* 0xaa */ PENT_INDEX_NOT_USED,
/* 0xab */ PENT_INDEX_NOT_USED,
/* 0xac */ PENT_INDEX_NOT_USED,
/* 0xad */ PENT_INDEX_NOT_USED,
/* 0xae */ PENT_INDEX_NOT_USED,
/* 0xaf */ PENT_INDEX_NOT_USED,
/* 0xb0 */ PENT_INDEX_NOT_USED,
/* 0xb1 */ PENT_INDEX_NOT_USED,
/* 0xb2 */ PENT_INDEX_NOT_USED,
/* 0xb3 */ PENT_INDEX_NOT_USED,
/* 0xb4 */ PENT_INDEX_NOT_USED,
/* 0xb5 */ PENT_INDEX_NOT_USED,
/* 0xb6 */ PENT_INDEX_NOT_USED,
/* 0xb7 */ PENT_INDEX_NOT_USED,
/* 0xb8 */ PENT_INDEX_NOT_USED,
/* 0xb9 */ PENT_INDEX_NOT_USED,
/* 0xba */ PENT_INDEX_NOT_USED,
/* 0xbb */ PENT_INDEX_NOT_USED,
/* 0xbc */ PENT_INDEX_NOT_USED,
/* 0xbd */ PENT_INDEX_NOT_USED,
/* 0xbe */ PENT_INDEX_NOT_USED,
/* 0xbf */ PENT_INDEX_NOT_USED,
/* 0xc0 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionsRetired),
/* 0xc1 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llFPComputeOpersRetired),
/* 0xc2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llUOPsRetired),
/* 0xc3 */ PENT_INDEX_NOT_USED,
/* 0xc4 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBranchesRetired),
/* 0xc5 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBranchMissPredictionsRetired),
/* 0xc6 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInterruptsMaskedCycles),
/* 0xc7 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llIntPendingWhileMaskedCycles),
/* 0xc8 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llHardwareInterruptsReceived),
/* 0xc9 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llTakenBranchesRetired),
/* 0xca */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llTakenBranchMissPredRetired),
/* 0xcb */ PENT_INDEX_NOT_USED,
/* 0xcc */ PENT_INDEX_NOT_USED,
/* 0xcd */ PENT_INDEX_NOT_USED,
/* 0xce */ PENT_INDEX_NOT_USED,
/* 0xcf */ PENT_INDEX_NOT_USED,
/* 0xd0 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llInstructionsDecoded),
/* 0xd1 */ PENT_INDEX_NOT_USED,
/* 0xd2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llPartialRegisterStalls),
/* 0xd3 */ PENT_INDEX_NOT_USED,
/* 0xd4 */ PENT_INDEX_NOT_USED,
/* 0xd5 */ PENT_INDEX_NOT_USED,
/* 0xd6 */ PENT_INDEX_NOT_USED,
/* 0xd7 */ PENT_INDEX_NOT_USED,
/* 0xd8 */ PENT_INDEX_NOT_USED,
/* 0xd9 */ PENT_INDEX_NOT_USED,
/* 0xda */ PENT_INDEX_NOT_USED,
/* 0xdb */ PENT_INDEX_NOT_USED,
/* 0xdc */ PENT_INDEX_NOT_USED,
/* 0xdd */ PENT_INDEX_NOT_USED,
/* 0xde */ PENT_INDEX_NOT_USED,
/* 0xdf */ PENT_INDEX_NOT_USED,
/* 0xe0 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBranchesDecoded),
/* 0xe1 */ PENT_INDEX_NOT_USED,
/* 0xe2 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBTBMisses),
/* 0xe3 */ PENT_INDEX_NOT_USED,
/* 0xe4 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBogusBranches),
/* 0xe5 */ PENT_INDEX_NOT_USED,
/* 0xe6 */ (DWORD)((LPBYTE)&((PP6_COUNTER_DATA)0)->llBACLEARSAsserted),
/* 0xe7 */ PENT_INDEX_NOT_USED,
/* 0xe8 */ PENT_INDEX_NOT_USED,
/* 0xe9 */ PENT_INDEX_NOT_USED,
/* 0xea */ PENT_INDEX_NOT_USED,
/* 0xeb */ PENT_INDEX_NOT_USED,
/* 0xec */ PENT_INDEX_NOT_USED,
/* 0xed */ PENT_INDEX_NOT_USED,
/* 0xee */ PENT_INDEX_NOT_USED,
/* 0xef */ PENT_INDEX_NOT_USED,
/* 0xf0 */ PENT_INDEX_NOT_USED,
/* 0xf1 */ PENT_INDEX_NOT_USED,
/* 0xf2 */ PENT_INDEX_NOT_USED,
/* 0xf3 */ PENT_INDEX_NOT_USED,
/* 0xf4 */ PENT_INDEX_NOT_USED,
/* 0xf5 */ PENT_INDEX_NOT_USED,
/* 0xf6 */ PENT_INDEX_NOT_USED,
/* 0xf7 */ PENT_INDEX_NOT_USED,
/* 0xf8 */ PENT_INDEX_NOT_USED,
/* 0xf9 */ PENT_INDEX_NOT_USED,
/* 0xfa */ PENT_INDEX_NOT_USED,
/* 0xfb */ PENT_INDEX_NOT_USED,
/* 0xfc */ PENT_INDEX_NOT_USED,
/* 0xfd */ PENT_INDEX_NOT_USED,
/* 0xfe */ PENT_INDEX_NOT_USED,
/* 0xff */ PENT_INDEX_NOT_USED
};
// define number of direct counters
DWORD P6IndexMax = sizeof(P6IndexToData) / sizeof(P6IndexToData[0]);