16 #ifndef CPUCounters_MSR_H
17 #define CPUCounters_MSR_H
30 #include <MSRAccessor.h>
41 static MSRAccessor * driver;
42 static int num_handles;
53 int32 read(uint64 msr_number, uint64 * value);
54 int32 write(uint64 msr_number, uint64 value);
55 int32 getCoreId() {
return (int32)cpu_id; }
57 int32 buildTopology(uint32 num_cores,
void *);
58 uint32 getNumInstances();
59 uint32 incrementNumInstances();
60 uint32 decrementNumInstances();
67 std::shared_ptr<MsrHandle> pHandle;
79 int32 read(uint64 msr_number, uint64 * value)
82 return pHandle->read(msr_number, value);
86 return (int32)
sizeof(uint64);
89 int32 write(uint64 msr_number, uint64 value)
92 return pHandle->write(msr_number, value);
94 return (int32)
sizeof(uint64);
99 return pHandle->getCoreId();
101 throw std::exception();
116 int32 buildTopology(uint32 num_cores,
void * p)
119 return pHandle->buildTopology(num_cores, p);
121 throw std::exception();
124 uint32 getNumInstances()
127 return pHandle->getNumInstances();
129 throw std::exception();
132 uint32 incrementNumInstances()
135 return pHandle->incrementNumInstances();
137 throw std::exception();
140 uint32 decrementNumInstances()
143 return pHandle->decrementNumInstances();
145 throw std::exception();
Internal type and constant definitions.