IOSpecialReg Class Reference

#include <rwmem.h>

Inheritance diagram for IOSpecialReg:
Inheritance graph
[legend]
Collaboration diagram for IOSpecialReg:
Collaboration graph
[legend]

List of all members.

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.

Detailed Description

IO register, which holds configuration for more than one hardware unit

Todo:
Set method could modify value, how to reflect it on TraceValue mechanism? Same problem for the get method.

Definition at line 253 of file rwmem.h.


Constructor & Destructor Documentation

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().

Here is the call graph for this function:


Member Function Documentation

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().

Here is the caller graph for this function:

unsigned char IOSpecialReg::get (  )  const [protected, virtual]

Get value method, see RWMemoryMember.

Implements RWMemoryMember.

Definition at line 147 of file rwmem.cpp.

References clients, and value.

void IOSpecialReg::hardwareChange ( unsigned char  val  )  [inline]

Reflects a value change from hardware (for example timer count occured)

Parameters:
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().

Here is the call graph for this function:

Here is the caller graph for this function:

void IOSpecialReg::hardwareChangeMask ( unsigned char  val,
unsigned char  mask 
) [inline]

Reflects a value change from hardware (for example timer count occured), but with bitmask

Parameters:
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().

Here is the call graph for this function:

Here is the caller graph for this function:

void IOSpecialReg::Reset ( unsigned char  val  )  [inline]

Register reset functionality, sets internal register value to val.

Parameters:
val the reset value

Definition at line 266 of file rwmem.h.

References TraceValue::set_written(), RWMemoryMember::tv, and value.

Here is the call graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

void IOSpecialReg::set ( unsigned char  val  )  [protected, virtual]

Set value method, see RWMemoryMember.

Implements RWMemoryMember.

Definition at line 154 of file rwmem.cpp.

References clients, and value.


Member Data Documentation

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]

Internal register value.

Definition at line 284 of file rwmem.h.

Referenced by get(), Reset(), and set().


The documentation for this class was generated from the following files:
Generated on Sun Feb 12 16:52:43 2012 for Simulavr by  doxygen 1.6.3