74 Axi4LiteTimeout, uhal::exception::ClientTimeout,
75 "Exception class to handle the case in "
76 "which the Axi4Lite connection timed out."
81 Axi4LiteInitialisationError,
uhal::exception::TransportLayerError,
82 "Exception class to handle a failure to read from the specified device "
83 "files during initialisation."
88 Axi4LiteCommunicationError,
uhal::exception::TransportLayerError,
89 "Exception class to handle a low-level seek/read/write
error after "
99 MappedFile(
const std::string& aPath,
size_t aLength,
int aProtFlags = PROT_WRITE);
102 const std::string& getPath()
const;
104 void setPath(
const std::string& aPath);
106 void setLength(
size_t);
114 void createBuffer(
const size_t aNrBytes);
116 void read(
const uint32_t aAddr,
const uint32_t aNrWords,
117 std::vector<uint32_t>& aValues);
119 void write(
const uint32_t aAddr,
const std::vector<uint32_t>& aValues);
121 void write(
const uint32_t aAddr,
const uint8_t*
const aPtr,
122 const size_t aNrBytes);
124 void write(
const uint32_t aAddr,
125 const std::vector<std::pair<const uint8_t*, size_t> >& aData);
127 bool haveLock()
const;
150 Axi4Lite(
const std::string& aId,
const uhal::URI& aUri);
174 void implementDispatch ( std::shared_ptr< uhal::Buffers > aBuffers );
177 virtual void Flush( );
180 virtual void dispatchExceptionHandler();
182 static std::string getDevicePath(
const uhal::URI& aUri);
184 static std::string getSharedMemName(
const std::string& );
190 uint32_t getMaxSendSize();
196 uint32_t getMaxReplySize();
207 void write(
const std::shared_ptr<uhal::Buffers>& aBuffers);
222 uint32_t mNumberOfPages, mMaxInFlight, mPageSize, mMaxPacketSize,
mIndexNextPage, mPublishedReplyPageCount, mReadReplyPageCount;