/*++ 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]);  

