gem5
v21.0.1.0
|
#include <reg_bank.hh>
Public Types | |
using | ReadFunc = std::function< Data(This ®)> |
using | PartialReadFunc = std::function< Data(This ®, int first, int last)> |
using | WriteFunc = std::function< void(This ®, const Data &value)> |
using | PartialWriteFunc = std::function< void(This ®, const Data &value, int first, int last)> |
Public Member Functions | |
constexpr | Register (const std::string &new_name) |
constexpr | Register (const std::string &new_name, const Data &new_data) |
constexpr | Register (const std::string &new_name, const Data &&new_data) |
constexpr This & | writeable (const Data &new_mask) |
constexpr This & | readonly () |
constexpr This & | reader (const ReadFunc &new_reader) |
template<class Parent , class... Args> | |
constexpr This & | reader (Parent *parent, Data(Parent::*nr)(Args... args)) |
constexpr This & | writer (const WriteFunc &new_writer) |
template<class Parent , class... Args> | |
constexpr This & | writer (Parent *parent, void(Parent::*nw)(Args... args)) |
constexpr This & | partialReader (const PartialReadFunc &new_reader) |
template<class Parent , class... Args> | |
constexpr This & | partialReader (Parent *parent, Data(Parent::*nr)(Args... args)) |
constexpr This & | partialWriter (const PartialWriteFunc &new_writer) |
template<class Parent , class... Args> | |
constexpr This & | partialWriter (Parent *parent, void(Parent::*nw)(Args... args)) |
const Data & | writeable () const |
const Data & | get () const |
Data & | get () |
void | update (const Data &new_data, const Data &bitmask) |
void | update (const Data &new_data) |
void | read (void *buf) override |
void | read (void *buf, off_t offset, size_t bytes) override |
void | write (const void *buf) override |
void | write (const void *buf, off_t offset, size_t bytes) override |
void | serialize (std::ostream &os) const override |
bool | unserialize (const std::string &s) override |
![]() | |
constexpr | RegisterBase (const std::string &new_name, size_t new_size) |
virtual | ~RegisterBase () |
virtual const std::string & | name () const |
size_t | size () const |
Protected Types | |
using | This = Register< Data, RegByteOrder > |
Protected Member Functions | |
constexpr Data | htoreg (Data data) |
constexpr Data | regtoh (Data data) |
Static Protected Member Functions | |
static Data | defaultReader (This ®) |
static Data | defaultPartialReader (This ®, int first, int last) |
static void | defaultWriter (This ®, const Data &value) |
static void | defaultPartialWriter (This ®, const Data &value, int first, int last) |
Private Attributes | |
Data | _data = {} |
Data | _writeMask = mask(sizeof(Data) * 8) |
ReadFunc | _reader = defaultReader |
WriteFunc | _writer = defaultWriter |
PartialWriteFunc | _partialWriter = defaultPartialWriter |
PartialReadFunc | _partialReader = defaultPartialReader |
Additional Inherited Members | |
![]() | |
const std::string | _name |
size_t | _size = 0 |
Definition at line 485 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register< Data, RegByteOrder >::PartialReadFunc = std::function< Data (This ®, int first, int last)> |
Definition at line 493 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register< Data, RegByteOrder >::PartialWriteFunc = std::function< void (This ®, const Data &value, int first, int last)> |
Definition at line 496 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register< Data, RegByteOrder >::ReadFunc = std::function<Data (This ®)> |
Definition at line 491 of file reg_bank.hh.
|
protected |
Definition at line 488 of file reg_bank.hh.
using RegisterBank< BankByteOrder >::Register< Data, RegByteOrder >::WriteFunc = std::function<void (This ®, const Data &value)> |
Definition at line 494 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 562 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 567 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 570 of file reg_bank.hh.
|
inlinestaticprotected |
Definition at line 511 of file reg_bank.hh.
|
inlinestaticprotected |
Definition at line 523 of file reg_bank.hh.
|
inlinestaticprotected |
Definition at line 508 of file reg_bank.hh.
|
inlinestaticprotected |
Definition at line 517 of file reg_bank.hh.
|
inline |
Definition at line 671 of file reg_bank.hh.
|
inline |
Definition at line 670 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::serialize(), and RegisterBank< BankByteOrder >::Register< BackingType >::unserialize().
|
inlineconstexprprotected |
Definition at line 530 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::read().
|
inlineconstexpr |
Definition at line 631 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::partialReader().
|
inlineconstexpr |
Definition at line 638 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 646 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::partialWriter().
|
inlineconstexpr |
Definition at line 653 of file reg_bank.hh.
|
inlineoverridevirtual |
Implements RegisterBank< BankByteOrder >::RegisterBase.
Definition at line 694 of file reg_bank.hh.
|
inlineoverridevirtual |
Implements RegisterBank< BankByteOrder >::RegisterBase.
Definition at line 701 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 590 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::reader(), and Uart8250::Registers::Registers().
|
inlineconstexpr |
Definition at line 597 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 584 of file reg_bank.hh.
Referenced by Uart8250::Registers::Registers().
|
inlineconstexprprotected |
Definition at line 543 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::write().
|
inlineoverridevirtual |
Implements RegisterBank< BankByteOrder >::RegisterBase.
Definition at line 745 of file reg_bank.hh.
|
inlineoverridevirtual |
Implements RegisterBank< BankByteOrder >::RegisterBase.
Definition at line 751 of file reg_bank.hh.
|
inline |
Definition at line 681 of file reg_bank.hh.
|
inline |
Definition at line 675 of file reg_bank.hh.
|
inlineoverridevirtual |
Implements RegisterBank< BankByteOrder >::RegisterBase.
Definition at line 717 of file reg_bank.hh.
|
inlineoverridevirtual |
Implements RegisterBank< BankByteOrder >::RegisterBase.
Definition at line 726 of file reg_bank.hh.
|
inline |
Definition at line 667 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::readonly().
|
inlineconstexpr |
Definition at line 577 of file reg_bank.hh.
|
inlineconstexpr |
Definition at line 605 of file reg_bank.hh.
Referenced by Uart8250::Registers::Registers(), and RegisterBank< BankByteOrder >::Register< BackingType >::writer().
|
inlineconstexpr |
Definition at line 612 of file reg_bank.hh.
|
private |
Definition at line 499 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::get(), and RegisterBank< BankByteOrder >::Register< BackingType >::update().
|
private |
Definition at line 505 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::partialReader(), and RegisterBank< BankByteOrder >::Register< BackingType >::read().
|
private |
Definition at line 504 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::partialWriter(), and RegisterBank< BankByteOrder >::Register< BackingType >::write().
|
private |
Definition at line 502 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::read(), and RegisterBank< BankByteOrder >::Register< BackingType >::reader().
|
private |
Definition at line 500 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::update(), and RegisterBank< BankByteOrder >::Register< BackingType >::writeable().
|
private |
Definition at line 503 of file reg_bank.hh.
Referenced by RegisterBank< BankByteOrder >::Register< BackingType >::write(), and RegisterBank< BankByteOrder >::Register< BackingType >::writer().