IORegDispatcher Class Reference

yasimavr: IORegDispatcher Class Reference
yasimavr
Loading...
Searching...
No Matches
IORegDispatcher Class Reference
Inheritance diagram for IORegDispatcher:
IORegHandler

Public Member Functions

void add_handler (IORegHandler &handler)
 
virtual uint8_t ioreg_read_handler (reg_addr_t addr, uint8_t value) override
 
virtual void ioreg_write_handler (reg_addr_t addr, const ioreg_write_t &value) override
 
virtual uint8_t ioreg_peek_handler (reg_addr_t addr, uint8_t value) override
 
- Public Member Functions inherited from IORegHandler
virtual ~IORegHandler ()=default
 

Member Function Documentation

◆ add_handler()

void IORegDispatcher::add_handler ( IORegHandler handler)
inline

◆ ioreg_peek_handler()

virtual uint8_t IORegDispatcher::ioreg_peek_handler ( reg_addr_t  addr,
uint8_t  value 
)
inlineoverridevirtual

Callback for a I/O peek access. On-the-fly modifications of the register content are possible.

Parameters
addraddress of the register read, in I/O address space
valuecurrent cached value of the register
Returns
actual value of the register

Implements IORegHandler.

◆ ioreg_read_handler()

virtual uint8_t IORegDispatcher::ioreg_read_handler ( reg_addr_t  addr,
uint8_t  value 
)
inlineoverridevirtual

Callback for a CPU I/O read access. On-the-fly modifications of the register content are possible.

Parameters
addraddress of the register read, in I/O address space
valuecurrent cached value of the register
Returns
actual value of the register

Implements IORegHandler.

◆ ioreg_write_handler()

virtual void IORegDispatcher::ioreg_write_handler ( reg_addr_t  addr,
const ioreg_write_t data 
)
inlineoverridevirtual

Callback for a CPU I/O write access. Note that the register has already been updated so it's ok for the callback to overwrite it. (a typical use case is implementing write-one-to-clear bits)

Parameters
addraddress of the register read, in I/O address space
datastruct containing the data change.

Implements IORegHandler.


The documentation for this class was generated from the following file: