gem5
v21.2.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 300 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register16 = Register<uint16_t> |
Definition at line 791 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register16BE = Register<uint16_t, ByteOrder::big> |
Definition at line 793 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register16LE = Register<uint16_t, ByteOrder::little> |
Definition at line 792 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register32 = Register<uint32_t> |
Definition at line 794 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register32BE = Register<uint32_t, ByteOrder::big> |
Definition at line 796 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register32LE = Register<uint32_t, ByteOrder::little> |
Definition at line 795 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register64 = Register<uint64_t> |
Definition at line 797 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register64BE = Register<uint64_t, ByteOrder::big> |
Definition at line 799 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register64LE = Register<uint64_t, ByteOrder::little> |
Definition at line 798 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register8 = Register<uint8_t> |
Definition at line 788 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register8BE = Register<uint8_t, ByteOrder::big> |
Definition at line 790 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register8LE = Register<uint8_t, ByteOrder::little> |
Definition at line 789 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 802 of file reg_bank.hh.
|
inlinevirtual |
Definition at line 806 of file reg_bank.hh.
|
inline |
Definition at line 820 of file reg_bank.hh.
Referenced by gem5::Clint::ClintRegisters::init(), and TEST_F().
|
inline |
Definition at line 809 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegister(), gem5::Uart8250::Registers::Registers(), and TEST_F().
|
inline |
Definition at line 822 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::read(), TEST_F(), and gem5::RegisterBank< ByteOrder::little >::write().
|
inline |
Definition at line 824 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegisters(), gem5::RegisterBank< ByteOrder::little >::read(), TEST_F(), and gem5::RegisterBank< ByteOrder::little >::write().
|
inlinevirtual |
Definition at line 827 of file reg_bank.hh.
Referenced by gem5::X86ISA::I8237::read(), gem5::Clint::read(), gem5::Plic::read(), gem5::Uart8250::read(), and TEST_F().
|
inlinestaticconstexpr |
Definition at line 306 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::writeWithMask().
|
inline |
Definition at line 823 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::read(), TEST_F(), and gem5::RegisterBank< ByteOrder::little >::write().
|
inlinevirtual |
Definition at line 884 of file reg_bank.hh.
Referenced by gem5::Clint::read(), TEST_F(), gem5::X86ISA::I8237::write(), gem5::Clint::write(), gem5::Plic::write(), and gem5::Uart8250::write().
|
inlinestaticconstexpr |
Definition at line 313 of file reg_bank.hh.
Referenced by gem5::RegisterBank< BankByteOrder >::Register< BackingType >::update().
|
private |
Definition at line 782 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegisters(), and gem5::RegisterBank< ByteOrder::little >::base().
|
private |
Definition at line 784 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::name().
|
private |
Definition at line 780 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegisters(), gem5::RegisterBank< ByteOrder::little >::read(), and gem5::RegisterBank< ByteOrder::little >::write().
|
private |
Definition at line 783 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegisters(), and gem5::RegisterBank< ByteOrder::little >::size().