28 #include "winpmem\winpmem.h"
40 static std::shared_ptr<WinPmem> pmem;
42 static bool writeSupported;
46 void writeInternal(uint64 offset,
T val)
50 std::cerr <<
"PCM Error: MMIORange writes are not supported by the driver" << std::endl;
55 std::cerr <<
"PCM Error: attempting to write to a read-only MMIORange" << std::endl;
59 pmem->write(startAddr + offset, val);
63 void readInternal(uint64 offset,
T & res)
66 pmem->read(startAddr + offset, res);
71 MMIORange(uint64 baseAddr_, uint64 size_,
bool readonly_ =
true);
72 uint32 read32(uint64 offset)
75 readInternal(offset, result);
78 uint64 read64(uint64 offset)
81 readInternal(offset, result);
84 void write32(uint64 offset, uint32 val)
86 writeInternal(offset, val);
88 void write64(uint64 offset, uint64 val)
90 writeInternal(offset, val);
94 #elif defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
103 MMIORange(uint64 baseAddr_, uint64 size_,
bool readonly_ =
true);
104 uint32 read32(uint64 offset);
105 uint64 read64(uint64 offset);
106 void write32(uint64 offset, uint32 val);
107 void write64(uint64 offset, uint64 val);
Definition: memoptest.cpp:35
Internal type and constant definitions.