14 std::filesystem::path _deviceFilePath;
15 int _deviceFileDescriptor = 0;
16 void* _deviceUserBase =
nullptr;
17 void* _deviceKernelBase =
nullptr;
18 size_t _deviceMemSize = 0;
19 uint32_t _lastInterruptCount = 0;
20 std::atomic<bool> _opened{
false};
31 static std::string lookupUioDevFromDtNode(
const std::string dtNodeNname);
37 uint32_t subtractUint32OverflowSafe(uint32_t minuend, uint32_t subtrahend);
42 uint32_t readUint32FromFile(std::string fileName);
47 uint64_t readUint64HexFromFile(std::string fileName);
50 explicit UioAccess(
const std::string& deviceFilePath);
64 void read(uint64_t map, uint64_t address, int32_t* data,
size_t sizeInBytes);
71 void write(uint64_t map, uint64_t address, int32_t
const* data,
size_t sizeInBytes);