#include "stdint.h" #include <exception> #define BAR_NUM 3 #define DEV_NAME "usd_reg" typedef struct bar_t{ void* ptr; int file; uint32_t size; }bar_t; class myexception: public std::exception { private: char* _message; public: myexception(char* message) { _message = message; } virtual const char* what() const noexcept { return _message; } }; class UltraSoundDevice { private: bar_t bars[BAR_NUM]; void sanityCheck(uint32_t address, uint32_t bar); public: UltraSoundDevice(); ~UltraSoundDevice(); uint8_t readByte(uint32_t address, uint32_t bar); uint16_t readShort(uint32_t address, uint32_t bar); uint32_t readWord(uint32_t address, uint32_t bar); uint64_t readLong(uint32_t address, uint32_t bar); void writeByte(uint32_t address, uint32_t bar, uint8_t data); void writeShort(uint32_t address, uint32_t bar, uint16_t data); void writeWord(uint32_t address, uint32_t bar, uint32_t data); void writeLong(uint32_t address, uint32_t bar, uint64_t data); };