6 #ifndef CPUCounters_MSR_H 7 #define CPUCounters_MSR_H 20 #include <MSRAccessor.h> 36 static int num_handles;
47 int32 read(uint64 msr_number, uint64 * value);
48 int32 write(uint64 msr_number, uint64 value);
49 int32 getCoreId() {
return (int32)cpu_id; }
51 int32 buildTopology(uint32 num_cores,
void *);
52 uint32 getNumInstances();
53 uint32 incrementNumInstances();
54 uint32 decrementNumInstances();
61 std::shared_ptr<MsrHandle> pHandle;
73 int32 read(uint64 msr_number, uint64 * value)
76 return pHandle->read(msr_number, value);
80 return (int32)
sizeof(uint64);
83 int32 write(uint64 msr_number, uint64 value)
86 return pHandle->write(msr_number, value);
88 return (int32)
sizeof(uint64);
94 return pHandle->getCoreId();
96 throw std::runtime_error(
"Core is offline");
110 int32 buildTopology(uint32 num_cores,
void * p)
113 return pHandle->buildTopology(num_cores, p);
115 throw std::exception();
117 uint32 getNumInstances()
120 return pHandle->getNumInstances();
122 throw std::exception();
124 uint32 incrementNumInstances()
127 return pHandle->incrementNumInstances();
129 throw std::exception();
131 uint32 decrementNumInstances()
134 return pHandle->decrementNumInstances();
136 throw std::exception();
Definition: MSRAccessor.h:10
Internal type and constant definitions.