Leaked source code of windows server 2003
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.

194 lines
9.6 KiB

  1. /*++ BUILD Version: 0001 // Increment this if a change has global effects
  2. Copyright (c) 1992 Microsoft Corporation
  3. Module Name:
  4. p6data.h
  5. Abstract:
  6. Header file for the p5 Extensible Object data definitions
  7. This file contains definitions to construct the dynamic data
  8. which is returned by the Configuration Registry. Data from
  9. various system API calls is placed into the structures shown
  10. here.
  11. Author:
  12. Russ Blake 12/23/93
  13. Revision History:
  14. --*/
  15. #ifndef _P6DATA_H_
  16. #define _P6DATA_H_
  17. #pragma pack(4)
  18. //----------------------------------------------------------------------------
  19. //
  20. // This structure defines the definition header for this performance object
  21. // This data is initialized in p6data.c and is more or less constant after
  22. // that. Organizationally, it is followed by an instance definition
  23. // structure and a counter data structure for each processor on the system.
  24. //
  25. typedef struct _P6_DATA_DEFINITION {
  26. PERF_OBJECT_TYPE P6PerfObject;
  27. PERF_COUNTER_DEFINITION StoreBufferBlocks;
  28. PERF_COUNTER_DEFINITION StoreBufferDrainCycles;
  29. PERF_COUNTER_DEFINITION MisalignedDataRef;
  30. PERF_COUNTER_DEFINITION SegmentLoads;
  31. PERF_COUNTER_DEFINITION FLOPSExecuted;
  32. PERF_COUNTER_DEFINITION MicrocodeFPExceptions;
  33. PERF_COUNTER_DEFINITION Multiplies;
  34. PERF_COUNTER_DEFINITION Divides;
  35. PERF_COUNTER_DEFINITION DividerBusyCycles;
  36. PERF_COUNTER_DEFINITION L2AddressStrobes;
  37. PERF_COUNTER_DEFINITION L2DataBusBusyCycles;
  38. PERF_COUNTER_DEFINITION L2DataBusToCpuBusyCycles;
  39. PERF_COUNTER_DEFINITION L2LinesAllocated;
  40. PERF_COUNTER_DEFINITION L2LinesMState;
  41. PERF_COUNTER_DEFINITION L2LinesRemoved;
  42. PERF_COUNTER_DEFINITION L2LinesMStateRemoved;
  43. PERF_COUNTER_DEFINITION L2InstructionFetches;
  44. PERF_COUNTER_DEFINITION L2DataLoads;
  45. PERF_COUNTER_DEFINITION L2DataStores;
  46. PERF_COUNTER_DEFINITION L2Requests;
  47. PERF_COUNTER_DEFINITION DataMemoryReferences;
  48. PERF_COUNTER_DEFINITION DCULinesAllocated;
  49. PERF_COUNTER_DEFINITION DCUMStateLinesAllocated;
  50. PERF_COUNTER_DEFINITION DCUMStateLinesEvicted;
  51. PERF_COUNTER_DEFINITION WeightedDCUMissesOutstd;
  52. PERF_COUNTER_DEFINITION BusRequestsOutstanding;
  53. PERF_COUNTER_DEFINITION BusBNRPinDriveCycles;
  54. PERF_COUNTER_DEFINITION BusDRDYAssertedClocks;
  55. PERF_COUNTER_DEFINITION BusLockAssertedClocks;
  56. PERF_COUNTER_DEFINITION BusClocksReceivingData;
  57. PERF_COUNTER_DEFINITION BusBurstReadTransactions;
  58. PERF_COUNTER_DEFINITION BusReadForOwnershipTrans;
  59. PERF_COUNTER_DEFINITION BusWritebackTransactions;
  60. PERF_COUNTER_DEFINITION BusInstructionFetches;
  61. PERF_COUNTER_DEFINITION BusInvalidateTransactions;
  62. PERF_COUNTER_DEFINITION BusPartialWriteTransactions;
  63. PERF_COUNTER_DEFINITION BusPartialTransactions;
  64. PERF_COUNTER_DEFINITION BusIOTransactions;
  65. PERF_COUNTER_DEFINITION BusDeferredTransactions;
  66. PERF_COUNTER_DEFINITION BusBurstTransactions;
  67. PERF_COUNTER_DEFINITION BusMemoryTransactions;
  68. PERF_COUNTER_DEFINITION BusAllTransactions;
  69. PERF_COUNTER_DEFINITION CPUWasNotHaltedCycles;
  70. PERF_COUNTER_DEFINITION BusCPUDrivesHitCycles;
  71. PERF_COUNTER_DEFINITION BusCPUDrivesHITMCycles;
  72. PERF_COUNTER_DEFINITION BusSnoopStalledCycles;
  73. PERF_COUNTER_DEFINITION InstructionFetches;
  74. PERF_COUNTER_DEFINITION InstructionFetchMisses;
  75. PERF_COUNTER_DEFINITION InstructionTLBMisses;
  76. PERF_COUNTER_DEFINITION InstructionFetcthStalledCycles;
  77. PERF_COUNTER_DEFINITION InstructionLenDecoderStalledCycles;
  78. PERF_COUNTER_DEFINITION ResourceRelatedStalls;
  79. PERF_COUNTER_DEFINITION InstructionsRetired;
  80. PERF_COUNTER_DEFINITION FPComputeOpersRetired;
  81. PERF_COUNTER_DEFINITION UOPsRetired;
  82. PERF_COUNTER_DEFINITION BranchesRetired;
  83. PERF_COUNTER_DEFINITION BranchMissPredictionsRetired;
  84. PERF_COUNTER_DEFINITION InterruptsMaskedCycles;
  85. PERF_COUNTER_DEFINITION IntPendingWhileMaskedCycles;
  86. PERF_COUNTER_DEFINITION HardwareInterruptsReceived;
  87. PERF_COUNTER_DEFINITION TakenBranchesRetired;
  88. PERF_COUNTER_DEFINITION TakenBranchMissPredRetired;
  89. PERF_COUNTER_DEFINITION InstructionsDecoded;
  90. PERF_COUNTER_DEFINITION PartialRegisterStalls;
  91. PERF_COUNTER_DEFINITION BranchesDecoded;
  92. PERF_COUNTER_DEFINITION BTBMisses;
  93. PERF_COUNTER_DEFINITION BogusBranches;
  94. PERF_COUNTER_DEFINITION BACLEARSAsserted;
  95. } P6_DATA_DEFINITION, *PP6_DATA_DEFINITION;
  96. extern P6_DATA_DEFINITION P6DataDefinition;
  97. typedef struct _P6_COUNTER_DATA {
  98. PERF_COUNTER_BLOCK CounterBlock;
  99. // direct counters
  100. LONGLONG llStoreBufferBlocks; // 0x03
  101. LONGLONG llStoreBufferDrainCycles; // 0x04
  102. LONGLONG llMisalignedDataRef; // 0x05
  103. LONGLONG llSegmentLoads; // 0x06
  104. LONGLONG llFLOPSExecuted; // 0x10
  105. LONGLONG llMicrocodeFPExceptions; // 0x11
  106. LONGLONG llMultiplies; // 0x12
  107. LONGLONG llDivides; // 0x13
  108. LONGLONG llDividerBusyCycles; // 0x14
  109. LONGLONG llL2AddressStrobes; // 0x21
  110. LONGLONG llL2DataBusBusyCycles; // 0x22
  111. LONGLONG llL2DataBusToCpuBusyCycles; // 0x23
  112. LONGLONG llL2LinesAllocated; // 0x24
  113. LONGLONG llL2LinesMState; // 0x25
  114. LONGLONG llL2LinesRemoved; // 0x26
  115. LONGLONG llL2LinesMStateRemoved; // 0x27
  116. LONGLONG llL2InstructionFetches; // 0x28
  117. LONGLONG llL2DataLoads; // 0x29
  118. LONGLONG llL2DataStores; // 0x2a
  119. LONGLONG llL2Requests; // 0x2e
  120. LONGLONG llDataMemoryReferences; // 0x43
  121. LONGLONG llDCULinesAllocated; // 0x45
  122. LONGLONG llDCUMStateLinesAllocated; // 0x46
  123. LONGLONG llDCUMStateLinesEvicted; // 0x47
  124. LONGLONG llWeightedDCUMissesOutstd; // 0x48
  125. LONGLONG llBusRequestsOutstanding; // 0x60
  126. LONGLONG llBusBNRPinDriveCycles; // 0x61
  127. LONGLONG llBusDRDYAssertedClocks; // 0x62
  128. LONGLONG llBusLockAssertedClocks; // 0x63
  129. LONGLONG llBusClocksReceivingData; // 0x64
  130. LONGLONG llBusBurstReadTransactions; // 0x65
  131. LONGLONG llBusReadForOwnershipTrans; // 0x66
  132. LONGLONG llBusWritebackTransactions; // 0x67
  133. LONGLONG llBusInstructionFetches; // 0x68
  134. LONGLONG llBusInvalidateTransactions; // 0x69
  135. LONGLONG llBusPartialWriteTransactions; // 0x6a
  136. LONGLONG llBusPartialTransactions; // 0x6b
  137. LONGLONG llBusIOTransactions; // 0x6c
  138. LONGLONG llBusDeferredTransactions; // 0x6d
  139. LONGLONG llBusBurstTransactions; // 0x6e
  140. LONGLONG llBusMemoryTransactions; // 0x6f
  141. LONGLONG llBusAllTransactions; // 0x70
  142. LONGLONG llCPUWasNotHaltedCycles; // 0x79
  143. LONGLONG llBusCPUDrivesHitCycles; // 0x7a
  144. LONGLONG llBusCPUDrivesHITMCycles; // 0x7b
  145. LONGLONG llBusSnoopStalledCycles; // 0x7e
  146. LONGLONG llInstructionFetches; // 0x80
  147. LONGLONG llInstructionFetchMisses; // 0x81
  148. LONGLONG llInstructionTLBMisses; // 0x85
  149. LONGLONG llInstructionFetcthStalledCycles; // 0x86
  150. LONGLONG llInstructionLenDecoderStalledCycles; // 0x87
  151. LONGLONG llResourceRelatedStalls; // 0xa2
  152. LONGLONG llInstructionsRetired; // 0xc0
  153. LONGLONG llFPComputeOpersRetired; // 0xc1
  154. LONGLONG llUOPsRetired; // 0xc2
  155. LONGLONG llBranchesRetired; // 0xc4
  156. LONGLONG llBranchMissPredictionsRetired; // 0xc5
  157. LONGLONG llInterruptsMaskedCycles; // 0xc6
  158. LONGLONG llIntPendingWhileMaskedCycles; // 0xc7
  159. LONGLONG llHardwareInterruptsReceived; // 0xc8
  160. LONGLONG llTakenBranchesRetired; // 0xc9
  161. LONGLONG llTakenBranchMissPredRetired; // 0xca
  162. LONGLONG llInstructionsDecoded; // 0xd0
  163. LONGLONG llPartialRegisterStalls; // 0xd2
  164. LONGLONG llBranchesDecoded; // 0xe0
  165. LONGLONG llBTBMisses; // 0xe2
  166. LONGLONG llBogusBranches; // 0xe4
  167. LONGLONG llBACLEARSAsserted; // 0xe6
  168. } P6_COUNTER_DATA, *PP6_COUNTER_DATA;
  169. extern DWORD P6IndexToData[]; // table to find data field
  170. extern DWORD P6IndexMax; // number of direct counters
  171. #endif //_P6DATA_H_