Generic hardware access library
|
Specifies address and access mode for VME64x items. More...
#include <VME64xHardwareAddress.hh>
Public Member Functions | |
VME64xHardwareAddress (uint32_t address, enum AddressSpace addressSpace, uint32_t mappedWindowId, uint32_t width) throw ( IllegalValueException ) | |
virtual uint32_t | getAddressModifier () const throw () |
Return the address modifier for VME modules. | |
virtual bool | isIOSpace () const throw (IllegalOperationException) |
Test on the address space. | |
virtual void | print (std::ostream &os=std::cout) const |
The implementation depends on the technology. | |
void | setWindowConfiguration (uint32_t AM, uint32_t dataWdith) throw ( IllegalValueException ) |
Set the address modifier and the data access width. | |
virtual GeneralHardwareAddress * | clone () const |
This method is needed to make deep copies of AddressTables. | |
Private Member Functions | |
std::string | getAddressSpaceString () const |
A helper for the print function;. | |
Private Attributes | |
uint32_t | addressModifier_ |
Specifies address and access mode for VME64x items.
A VME64x access to an item of a VME64x-module is specified by the the offset to the baseaddress, and the mapped WindowId. Note that the baseaddress itself is not contained in this class since it is a property of the VME64x-function and NOT a property of the item to be accessed. (Similarly in the PCIHardwareAddress the BAR-Id is contained but NOT the value of the Bar itself.
Definition at line 34 of file VME64xHardwareAddress.hh.
HAL::VME64xHardwareAddress::VME64xHardwareAddress | ( | uint32_t | address, |
enum AddressSpace | addressSpace, | ||
uint32_t | mappedWindowId, | ||
uint32_t | width | ||
) | throw ( IllegalValueException ) |
mappedWindowId | has a default value of 0 since in case the addressSpace is the configuration space, the value of this parameter is irrelevant. |
width | is only used for configuration space items. It has no meaning for memory space items. |
Definition at line 5 of file VME64xHardwareAddress.cc.
HAL::GeneralHardwareAddress * HAL::VME64xHardwareAddress::clone | ( | ) | const [virtual] |
This method is needed to make deep copies of AddressTables.
Implements HAL::GeneralHardwareAddress.
Definition at line 91 of file VME64xHardwareAddress.cc.
uint32_t HAL::VME64xHardwareAddress::getAddressModifier | ( | ) | const throw () [virtual] |
Return the address modifier for VME modules.
This function throws an Exception for PCI modules since in PCI there are no address modifiers.
Implements HAL::GeneralHardwareAddress.
Definition at line 57 of file VME64xHardwareAddress.cc.
std::string HAL::VME64xHardwareAddress::getAddressSpaceString | ( | ) | const [private] |
A helper for the print function;.
Definition at line 68 of file VME64xHardwareAddress.cc.
bool HAL::VME64xHardwareAddress::isIOSpace | ( | ) | const throw (IllegalOperationException) [virtual] |
Test on the address space.
For VME Hardware Addresses this function throws an exception since there is no IO-space in VME.
Implements HAL::GeneralHardwareAddress.
Definition at line 62 of file VME64xHardwareAddress.cc.
void HAL::VME64xHardwareAddress::print | ( | std::ostream & | os = std::cout | ) | const [virtual] |
The implementation depends on the technology.
Implements HAL::GeneralHardwareAddress.
Definition at line 78 of file VME64xHardwareAddress.cc.
void HAL::VME64xHardwareAddress::setWindowConfiguration | ( | uint32_t | AM, |
uint32_t | dataWdith | ||
) | throw ( IllegalValueException ) |
Set the address modifier and the data access width.
This function is specific to VME64x, since these paramenters are set during configuration of the VMECrate. For standard VME modules the parameters are contained in the addressTable.
Definition at line 33 of file VME64xHardwareAddress.cc.
uint32_t HAL::VME64xHardwareAddress::addressModifier_ [private] |
Reimplemented from HAL::GeneralHardwareAddress.
Definition at line 73 of file VME64xHardwareAddress.hh.