1.16.4 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();
};
Non-ConfidentialPDF file icon PDF version100964_1142_00_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.