gem5
v21.0.1.0
|
#include <reg_bank.hh>
Classes | |
class | Register |
class | RegisterBase |
class | RegisterBuf |
class | RegisterLBuf |
class | RegisterRao |
class | RegisterRaz |
class | RegisterRoFill |
Public Types | |
using | Register8 = Register< uint8_t > |
using | Register8LE = Register< uint8_t, ByteOrder::little > |
using | Register8BE = Register< uint8_t, ByteOrder::big > |
using | Register16 = Register< uint16_t > |
using | Register16LE = Register< uint16_t, ByteOrder::little > |
using | Register16BE = Register< uint16_t, ByteOrder::big > |
using | Register32 = Register< uint32_t > |
using | Register32LE = Register< uint32_t, ByteOrder::little > |
using | Register32BE = Register< uint32_t, ByteOrder::big > |
using | Register64 = Register< uint64_t > |
using | Register64LE = Register< uint64_t, ByteOrder::little > |
using | Register64BE = Register< uint64_t, ByteOrder::big > |
Public Member Functions | |
constexpr | RegisterBank (const std::string &new_name, Addr new_base) |
virtual | ~RegisterBank () |
void | addRegisters (std::initializer_list< std::reference_wrapper< RegisterBase >> regs) |
void | addRegister (RegisterBase ®) |
Addr | base () const |
Addr | size () const |
const std::string & | name () const |
virtual void | read (Addr addr, void *buf, Addr bytes) |
virtual void | write (Addr addr, const void *buf, Addr bytes) |
Static Public Member Functions | |
template<typename Data > | |
static constexpr Data | readWithMask (const Data &value, const Data &bitmask) |
template<typename Data > | |
static constexpr Data | writeWithMask (const Data &old, const Data &value, const Data &bitmask) |
Private Attributes | |
std::map< Addr, std::reference_wrapper< RegisterBase > > | _offsetMap |
Addr | _base = 0 |
Addr | _size = 0 |
const std::string | _name |
Definition at line 295 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register16 = Register<uint16_t> |
Definition at line 769 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register16BE = Register<uint16_t, ByteOrder::big> |
Definition at line 771 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register16LE = Register<uint16_t, ByteOrder::little> |
Definition at line 770 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register32 = Register<uint32_t> |
Definition at line 772 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register32BE = Register<uint32_t, ByteOrder::big> |
Definition at line 774 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register32LE = Register<uint32_t, ByteOrder::little> |
Definition at line 773 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register64 = Register<uint64_t> |
Definition at line 775 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register64BE = Register<uint64_t, ByteOrder::big> |
Definition at line 777 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register64LE = Register<uint64_t, ByteOrder::little> |
Definition at line 776 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register8 = Register<uint8_t> |
Definition at line 766 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register8BE = Register<uint8_t, ByteOrder::big> |
Definition at line 768 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register8LE = Register<uint8_t, ByteOrder::little> |
Definition at line 767 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 780 of file reg_bank.hh.
|
inlinevirtual |
Definition at line 784 of file reg_bank.hh.
|
inline |
Definition at line 798 of file reg_bank.hh.
Referenced by Plic::PlicRegisters::init(), and TEST_F().
|
inline |
Definition at line 787 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::addRegister(), Uart8250::Registers::Registers(), and TEST_F().
|
inline |
Definition at line 800 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::read(), TEST_F(), and RegisterBank< ByteOrder::little >::write().
|
inline |
Definition at line 802 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::addRegisters(), RegisterBank< ByteOrder::little >::read(), TEST_F(), and RegisterBank< ByteOrder::little >::write().
|
inlinevirtual |
Definition at line 805 of file reg_bank.hh.
Referenced by X86ISA::I8237::read(), Clint::read(), Plic::read(), Uart8250::read(), and TEST_F().
|
inlinestaticconstexpr |
Definition at line 301 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::writeWithMask().
|
inline |
Definition at line 801 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::read(), TEST_F(), and RegisterBank< ByteOrder::little >::write().
|
inlinevirtual |
Definition at line 862 of file reg_bank.hh.
Referenced by TEST_F(), X86ISA::I8237::write(), Clint::write(), Plic::write(), and Uart8250::write().
|
inlinestaticconstexpr |
Definition at line 308 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::update().
|
private |
Definition at line 760 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::addRegisters(), and RegisterBank< ByteOrder::little >::base().
|
private |
Definition at line 762 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::name().
|
private |
Definition at line 758 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::addRegisters(), RegisterBank< ByteOrder::little >::read(), and RegisterBank< ByteOrder::little >::write().
|
private |
Definition at line 761 of file reg_bank.hh.
Referenced by RegisterBank< ByteOrder::little >::addRegisters(), and RegisterBank< ByteOrder::little >::size().