gem5
[DEVELOP-FOR-23.0]
|
#include <reg_bank.hh>
Classes | |
class | Register |
class | RegisterAdder |
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< RegisterAdder > adders) |
void | addRegister (RegisterAdder reg) |
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) |
virtual void | reset () |
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 332 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register16 = Register<uint16_t> |
Definition at line 876 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register16BE = Register<uint16_t, ByteOrder::big> |
Definition at line 878 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register16LE = Register<uint16_t, ByteOrder::little> |
Definition at line 877 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register32 = Register<uint32_t> |
Definition at line 879 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register32BE = Register<uint32_t, ByteOrder::big> |
Definition at line 881 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register32LE = Register<uint32_t, ByteOrder::little> |
Definition at line 880 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register64 = Register<uint64_t> |
Definition at line 882 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register64BE = Register<uint64_t, ByteOrder::big> |
Definition at line 884 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register64LE = Register<uint64_t, ByteOrder::little> |
Definition at line 883 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register8 = Register<uint8_t> |
Definition at line 873 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register8BE = Register<uint8_t, ByteOrder::big> |
Definition at line 875 of file reg_bank.hh.
using gem5::RegisterBank< BankByteOrder >::Register8LE = Register<uint8_t, ByteOrder::little> |
Definition at line 874 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 887 of file reg_bank.hh.
|
inlinevirtual |
Definition at line 891 of file reg_bank.hh.
|
inline |
Definition at line 938 of file reg_bank.hh.
Referenced by TEST_F().
|
inline |
Definition at line 913 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegister(), gem5::Uart8250::Registers::Registers(), gem5::SysSecCtrl::SysSecCtrl(), and TEST_F().
|
inline |
Definition at line 940 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::read(), TEST_F(), and gem5::RegisterBank< ByteOrder::little >::write().
|
inline |
Definition at line 942 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 945 of file reg_bank.hh.
Referenced by gem5::SysSecCtrl::read(), gem5::X86ISA::I8237::read(), gem5::Clint::read(), gem5::Plic::read(), and gem5::Uart8250::read().
|
inlinestaticconstexpr |
Definition at line 338 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::writeWithMask().
|
inlinevirtual |
Definition at line 1060 of file reg_bank.hh.
|
inline |
Definition at line 941 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::read(), TEST_F(), and gem5::RegisterBank< ByteOrder::little >::write().
|
inlinevirtual |
Definition at line 1002 of file reg_bank.hh.
Referenced by gem5::SysSecCtrl::write(), gem5::fastmodel::ResetControllerExample::write(), gem5::X86ISA::I8237::write(), gem5::Clint::write(), gem5::Plic::write(), and gem5::Uart8250::write().
|
inlinestaticconstexpr |
Definition at line 345 of file reg_bank.hh.
Referenced by gem5::RegisterBank< BankByteOrder >::Register< BackingType >::update().
|
private |
Definition at line 867 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegisters(), and gem5::RegisterBank< ByteOrder::little >::base().
|
private |
Definition at line 869 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::name().
|
private |
Definition at line 865 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegisters(), gem5::RegisterBank< ByteOrder::little >::read(), gem5::RegisterBank< ByteOrder::little >::reset(), and gem5::RegisterBank< ByteOrder::little >::write().
|
private |
Definition at line 868 of file reg_bank.hh.
Referenced by gem5::RegisterBank< ByteOrder::little >::addRegisters(), and gem5::RegisterBank< ByteOrder::little >::size().