Non-Confidential | ![]() | 100964_1142_00_en | ||
| ||||
Home > Introduction > PVBus C++ transaction and Tx_Result classes > Class pv::Transaction |
This class is a base class for read and write transactions that are visible in the PVBusSlave subcomponent. It contains functionality common to both types of transaction.
This class provides an interface that permits bus slaves to access the details of the transaction. Do not instantiate these classes manually. The classes are generated internally by the PVBus infrastructure.
This base class provides access methods to get the transaction address, access width, and bus signals. It also provides a method to signal that the transaction has been aborted.
class pv::Transaction { public: // Accessors bus_addr_t getAddress() const; // Transaction address. pv::AccessWidth getAccessWidth() const; // Request width. int getAccessByteWidth() const; // Request width in bytes. int getAccessBitWidth() const; // Request width in bits. bool isPrivileged() const; // Privileged process mode? bool isInstruction() const; // Instruction request vs data? bool isNonSecure() const; // Normal-world vs secure-world? bool isLocked() const; // Atomic locked access? bool isExclusive() const; // Atomic exclusive access? uint32_t getMasterID() const; bool hasSideEffect() const; // Generate transaction returns Tx_Result generateAbort(); // Cause the transaction to abort. Tx_Result generateSlaveAbort(); // Cause the transaction to abort. Tx_Result generateDecodeAbort(); // Cause the transaction to abort. Tx_Result generateExclusiveAbort(); // Cause the transaction to abort. Tx_Result generateIgnore(); };