#include <rwmem.h>
Public Member Functions | |
IOSpecialReg (TraceValueRegister *registry, const std::string &tracename) | |
Creates a IOSpecialReg instance, see RWMemoryMember for more info. | |
void | connectSRegClient (IOSpecialRegClient *c) |
Registers a client to this IO register to inform this client on read or write access. | |
void | Reset (void) |
Register reset functionality, sets internal register value to 0. | |
void | Reset (unsigned char val) |
void | hardwareChange (unsigned char val) |
void | hardwareChangeMask (unsigned char val, unsigned char mask) |
Protected Member Functions | |
unsigned char | get () const |
Get value method, see RWMemoryMember. | |
void | set (unsigned char) |
Set value method, see RWMemoryMember. | |
Protected Attributes | |
std::vector< IOSpecialRegClient * > | clients |
clients-list with registered clients | |
Private Attributes | |
unsigned char | value |
Internal register value. |
IO register, which holds configuration for more than one hardware unit
Definition at line 253 of file rwmem.h.
IOSpecialReg::IOSpecialReg | ( | TraceValueRegister * | registry, | |
const std::string & | tracename | |||
) |
Creates a IOSpecialReg instance, see RWMemoryMember for more info.
Definition at line 141 of file rwmem.cpp.
References Reset().
void IOSpecialReg::connectSRegClient | ( | IOSpecialRegClient * | c | ) | [inline] |
Registers a client to this IO register to inform this client on read or write access.
Definition at line 260 of file rwmem.h.
References clients.
Referenced by ExternalIRQ::ExternalIRQ(), ExternalIRQHandler::ExternalIRQHandler(), HWPrescaler::HWPrescaler(), HWPrescalerAsync::HWPrescalerAsync(), and TimerIRQRegister::TimerIRQRegister().
unsigned char IOSpecialReg::get | ( | ) | const [protected, virtual] |
Get value method, see RWMemoryMember.
Implements RWMemoryMember.
void IOSpecialReg::hardwareChange | ( | unsigned char | val | ) | [inline] |
Reflects a value change from hardware (for example timer count occured)
val | the new register value |
Definition at line 270 of file rwmem.h.
References TraceValue::change(), and RWMemoryMember::tv.
Referenced by TimerIRQRegister::ClearIrqFlag(), and TimerIRQRegister::fireInterrupt().
void IOSpecialReg::hardwareChangeMask | ( | unsigned char | val, | |
unsigned char | mask | |||
) | [inline] |
Reflects a value change from hardware (for example timer count occured), but with bitmask
val | the new register value | |
mask | the bitmask for val |
Definition at line 275 of file rwmem.h.
References TraceValue::change(), and RWMemoryMember::tv.
Referenced by ExternalIRQHandler::ClearIrqFlag(), and ExternalIRQHandler::fireInterrupt().
void IOSpecialReg::Reset | ( | unsigned char | val | ) | [inline] |
Register reset functionality, sets internal register value to val.
val | the reset value |
Definition at line 266 of file rwmem.h.
References TraceValue::set_written(), RWMemoryMember::tv, and value.
void IOSpecialReg::Reset | ( | void | ) | [inline] |
Register reset functionality, sets internal register value to 0.
Definition at line 263 of file rwmem.h.
References Reset().
Referenced by IOSpecialReg(), Reset(), and TimerIRQRegister::Reset().
void IOSpecialReg::set | ( | unsigned char | val | ) | [protected, virtual] |
Set value method, see RWMemoryMember.
Implements RWMemoryMember.
std::vector<IOSpecialRegClient*> IOSpecialReg::clients [protected] |
clients-list with registered clients
Definition at line 278 of file rwmem.h.
Referenced by connectSRegClient(), get(), and set().
unsigned char IOSpecialReg::value [private] |