|
| WriteMonitoringBackend (const std::string &mapFileName) |
|
| DummyBackend (const std::string &mapFileName) |
|
| ~DummyBackend () override=default |
|
void | open () override |
| Open the device. More...
|
|
void | closeImpl () override |
| This closes the device, clears all internal registers, read-only settings and callback functions. More...
|
|
void | read (uint64_t bar, uint64_t address, int32_t *data, size_t sizeInBytes) override |
| Read function to be implemented by backends. More...
|
|
void | write (uint64_t bar, uint64_t address, int32_t const *data, size_t sizeInBytes) override |
| Write function to be implemented by backends. More...
|
|
std::string | readDeviceInfo () override |
| Return a device information string containing hardware details like the firmware version number or the slot number used by the board. More...
|
|
DummyRegisterRawAccessor | getRawAccessor (const std::string &module, const std::string ®ister_name) |
| Get a raw accessor to the underlying memory with the convenience of using register names. More...
|
|
VersionNumber | triggerInterrupt (uint32_t interruptNumber) override |
| Simulate the arrival of an interrupt. More...
|
|
void | read ([[maybe_unused]] uint8_t bar,[[maybe_unused]] uint32_t address,[[maybe_unused]] int32_t *data,[[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the read version with 32 bit address any more. More...
|
|
void | write ([[maybe_unused]] uint8_t bar,[[maybe_unused]] uint32_t address,[[maybe_unused]] int32_t const *data,[[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the write version with 32 bit address any more. More...
|
|
| DummyBackendBase (std::string const &mapFileName) |
|
| ~DummyBackendBase () override=default |
|
size_t | minimumTransferAlignment ([[maybe_unused]] uint64_t bar) const override |
| Determines the supported minimum alignment for any read/write requests. More...
|
|
| DEFINE_VIRTUAL_FUNCTION_OVERRIDE_VTABLE (NumericAddressedBackend, getRegisterAccessor_impl, boost::shared_ptr< NDRegisterAccessor< T >>(const RegisterPath &, size_t, size_t, AccessModeFlags)) |
|
void | read ([[maybe_unused]] uint8_t bar, [[maybe_unused]] uint32_t address, [[maybe_unused]] int32_t *data, [[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the read version with 32 bit address any more. More...
|
|
void | write ([[maybe_unused]] uint8_t bar, [[maybe_unused]] uint32_t address, [[maybe_unused]] int32_t const *data, [[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the write version with 32 bit address any more. More...
|
|
bool | barIndexValid ([[maybe_unused]] uint64_t bar) override |
| All bars are valid in dummies. More...
|
|
std::map< uint64_t, size_t > | getBarSizesInBytesFromRegisterMapping () const |
| Determines the size of each bar because the DummyBackends allocate memory per bar. More...
|
|
template<typename UserType > |
boost::shared_ptr< NDRegisterAccessor< UserType > > | getRegisterAccessor_impl (const RegisterPath ®isterPathName, size_t numberOfWords, size_t wordOffsetInRegister, AccessModeFlags flags) |
| Specific override which allows to create "DUMMY_INTEERRUPT_X" accessors. More...
|
|
| NumericAddressedBackend (const std::string &mapFileName="", std::unique_ptr< NumericAddressedRegisterCatalogue > registerMapPointer=std::make_unique< NumericAddressedRegisterCatalogue >()) |
|
| ~NumericAddressedBackend () override=default |
|
virtual bool | barIndexValid (uint64_t bar) |
| Function to be implemented by the backends. More...
|
|
virtual bool | canMergeRequests () const |
| Determines whether the backend supports merging of requests (read or write) More...
|
|
RegisterCatalogue | getRegisterCatalogue () const override |
| Return the register catalogue with detailed information on all registers. More...
|
|
MetadataCatalogue | getMetadataCatalogue () const override |
| Return the device metadata catalogue. More...
|
|
NumericAddressedRegisterInfo | getRegisterInfo (const RegisterPath ®isterPathName) |
| getRegisterInfo returns a NumericAddressedRegisterInfo object for the given register. More...
|
|
void | activateAsyncRead () noexcept override |
| Activate asyncronous read for all transfer elements where AccessMode::wait_for_new_data is set. More...
|
|
void | close () final |
| Deactivates all asynchronous accessors and calls closeImpl(). More...
|
|
virtual std::future< void > | activateSubscription (uint32_t interruptNumber, boost::shared_ptr< async::DomainImpl< std::nullptr_t >> asyncDomain) |
| Activate/create the subscription for a given interrupt (for instance by starting the according interrupt handling thread). More...
|
|
void | setExceptionImpl () noexcept override |
| Turn off the internal variable which remembers that async is active. More...
|
|
template<typename BackendSpecificUserType > |
std::pair< BackendSpecificUserType, VersionNumber > | getAsyncDomainInitialValue (size_t asyncDomainId) |
| Get the initial value for a certain async::Domain. More...
|
|
template<typename BackendSpecificUserType > |
std::pair< BackendSpecificUserType, VersionNumber > | getAsyncDomainInitialValue ([[maybe_unused]] size_t asyncDomainId) |
|
bool | isOpen () override |
| Return whether a device has been opened or not. More...
|
|
bool | isConnected () final |
| Deprecated since 2022-03-03. More...
|
|
void | checkActiveException () final |
| Function to be called by backends when needing to check for an active exception. More...
|
|
void | setException (const std::string &message) noexcept final |
| Set the backend into an exception state. More...
|
|
bool | isFunctional () const noexcept final |
| Return whether a device is working as intended, usually this means it is opened and does not have any errors. More...
|
|
std::string | getActiveExceptionMessage () noexcept |
|
virtual | ~DeviceBackend ()=default |
| Every virtual class needs a virtual desctructor. More...
|
|
template<typename UserType > |
boost::shared_ptr< NDRegisterAccessor< UserType > > | getRegisterAccessor (const RegisterPath ®isterPathName, size_t numberOfWords, size_t wordOffsetInRegister, AccessModeFlags flags) |
| Get a NDRegisterAccessor object from the register name. More...
|
|
| DEFINE_VIRTUAL_FUNCTION_TEMPLATE_VTABLE (getRegisterAccessor_impl, boost::shared_ptr< NDRegisterAccessor< T >>(const RegisterPath &, size_t, size_t, AccessModeFlags)) |
|
|
void | resizeBarContents () |
|
void | runWriteCallbackFunctionsForAddressRange (AddressRange addressRange) |
|
std::list< boost::function< void(void)> > | findCallbackFunctionsForAddressRange (AddressRange addressRange) |
|
void | setReadOnly (uint64_t bar, uint64_t address, size_t sizeInWords) |
|
void | setReadOnly (AddressRange addressRange) |
|
bool | isReadOnly (uint64_t bar, uint64_t address) const |
|
void | setWriteCallbackFunction (AddressRange addressRange, boost::function< void(void)> const &writeCallbackFunction) |
|
bool | isWriteRangeOverlap (AddressRange firstRange, AddressRange secondRange) |
| returns true if the ranges overlap and at least one of the overlapping registers can be written More...
|
|
void | writeRegisterWithoutCallback (uint64_t bar, uint64_t address, int32_t data) |
| Not write-protected function for internal use only. More...
|
|
void | setOpenedAndClearException () noexcept |
| Backends should call this function at the end of a (successful) open() call. More...
|
|
static std::string | convertPathRelativeToDmapToAbs (std::string const &mapfileName) |
|
std::string | _mapFile |
| name of the map file More...
|
|
std::map< uint64_t, std::vector< int32_t > > | _barContents |
|
std::set< std::pair< uint64_t, uint64_t > > | _readOnlyAddresses |
|
std::multimap< AddressRange, boost::function< void(void)> > | _writeCallbackFunctions |
|
std::mutex | mutex |
|
std::unique_ptr< NumericAddressedRegisterCatalogue > | _registerMapPointer |
|
NumericAddressedRegisterCatalogue & | _registerMap |
|
MetadataCatalogue | _metadataCatalogue |
| metadata catalogue More...
|
|
std::mutex | _unalignedAccess |
| mutex for protecting unaligned access More...
|
|
friend | NumericAddressedLowLevelTransferElement |
|
friend | TriggeredPollDistributor |
|
std::atomic< bool > | _opened {false} |
| flag if backend is opened More...
|
|
async::DomainsContainer | _asyncDomainsContainer |
| Container for async::Domains to support wait_for_new_data. More...
|
|