gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
CpuLocalTimer::Timer Class Reference

#include <timer_cpulocal.hh>

Inheritance diagram for CpuLocalTimer::Timer:
Serializable

Public Types

enum  {
  TimerLoadReg = 0x00, TimerCounterReg = 0x04, TimerControlReg = 0x08, TimerIntStatusReg = 0x0C,
  WatchdogLoadReg = 0x20, WatchdogCounterReg = 0x24, WatchdogControlReg = 0x28, WatchdogIntStatusReg = 0x2C,
  WatchdogResetStatusReg = 0x30, WatchdogDisableReg = 0x34, Size = 0x38
}
 

Public Member Functions

 BitUnion32 (TimerCtrl) Bitfield< 0 > enable
 
 EndBitUnion (TimerCtrl) BitUnion32(WatchdogCtrl) Bitfield< 0 > enable
 
void timerAtZero ()
 Called when the counter reaches 0. More...
 
void watchdogAtZero ()
 
void restartTimerCounter (uint32_t val)
 Restart the counter ticking at val. More...
 
void restartWatchdogCounter (uint32_t val)
 
 Timer ()
 
std::string name () const
 
void read (PacketPtr pkt, Addr daddr)
 Handle read for a single timer. More...
 
void write (PacketPtr pkt, Addr daddr)
 Handle write for a single timer. More...
 
void serialize (CheckpointOut &cp) const override
 Serialize an object. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
- Public Member Functions inherited from Serializable
 Serializable ()
 
virtual ~Serializable ()
 
void serializeSection (CheckpointOut &cp, const char *name) const
 Serialize an object into a new section. More...
 
void serializeSection (CheckpointOut &cp, const std::string &name) const
 
void unserializeSection (CheckpointIn &cp, const char *name)
 Unserialize an a child object. More...
 
void unserializeSection (CheckpointIn &cp, const std::string &name)
 

Public Attributes

Bitfield< 1 > autoReload
 
Bitfield< 2 > intEnable
 
Bitfield< 7, 3 > reserved
 
Bitfield< 15, 8 > prescalar
 
Bitfield< 3 > watchdogMode
 
Bitfield< 7, 4 > reserved
 
EndBitUnion(WatchdogCtrl)
protected CpuLocalTimer
parent
 Pointer to parent class. More...
 
uint32_t intNumTimer
 Number of interrupt to cause/clear. More...
 
uint32_t intNumWatchdog
 
uint32_t cpuNum
 Cpu this timer is attached to. More...
 
TimerCtrl timerControl
 Control register as specified above. More...
 
WatchdogCtrl watchdogControl
 
bool rawIntTimer
 If timer has caused an interrupt. More...
 
bool rawIntWatchdog
 
bool rawResetWatchdog
 
uint32_t watchdogDisableReg
 
bool pendingIntTimer
 If an interrupt is currently pending. More...
 
bool pendingIntWatchdog
 
uint32_t timerLoadValue
 Value to load into counters when periodic mode reaches 0. More...
 
uint32_t watchdogLoadValue
 
EventWrapper< Timer,&Timer::timerAtZerotimerZeroEvent
 
EventWrapper< Timer,&Timer::watchdogAtZerowatchdogZeroEvent
 

Friends

class CpuLocalTimer
 

Additional Inherited Members

- Static Public Member Functions inherited from Serializable
static const std::string & currentSection ()
 Get the fully-qualified name of the active section. More...
 
static void serializeAll (const std::string &cpt_dir)
 
static void unserializeGlobals (CheckpointIn &cp)
 
- Static Public Attributes inherited from Serializable
static int ckptCount = 0
 
static int ckptMaxCount = 0
 
static int ckptPrevCount = -1
 

Detailed Description

Definition at line 58 of file timer_cpulocal.hh.

Member Enumeration Documentation

anonymous enum
Enumerator
TimerLoadReg 
TimerCounterReg 
TimerControlReg 
TimerIntStatusReg 
WatchdogLoadReg 
WatchdogCounterReg 
WatchdogControlReg 
WatchdogIntStatusReg 
WatchdogResetStatusReg 
WatchdogDisableReg 
Size 

Definition at line 62 of file timer_cpulocal.hh.

Constructor & Destructor Documentation

CpuLocalTimer::Timer::Timer ( )

Definition at line 66 of file timer_cpulocal.cc.

Member Function Documentation

CpuLocalTimer::Timer::BitUnion32 ( TimerCtrl  )
CpuLocalTimer::Timer::EndBitUnion ( TimerCtrl  )
std::string CpuLocalTimer::Timer::name ( ) const
inline

Definition at line 140 of file timer_cpulocal.hh.

void CpuLocalTimer::Timer::read ( PacketPtr  pkt,
Addr  daddr 
)

Handle read for a single timer.

Definition at line 94 of file timer_cpulocal.cc.

References curTick(), DPRINTF, panic, power(), prescalar, and Packet::set().

Referenced by CpuLocalTimer::read().

void CpuLocalTimer::Timer::restartTimerCounter ( uint32_t  val)

Restart the counter ticking at val.

Parameters
valthe value to start at

Definition at line 248 of file timer_cpulocal.cc.

References curTick(), DPRINTF, power(), and X86ISA::val.

void CpuLocalTimer::Timer::restartWatchdogCounter ( uint32_t  val)

Definition at line 266 of file timer_cpulocal.cc.

References curTick(), DPRINTF, power(), and X86ISA::val.

void CpuLocalTimer::Timer::serialize ( CheckpointOut cp) const
overridevirtual

Serialize an object.

Output an object's state into the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 339 of file timer_cpulocal.cc.

References DPRINTF, and SERIALIZE_SCALAR.

void CpuLocalTimer::Timer::timerAtZero ( )

Called when the counter reaches 0.

Definition at line 285 of file timer_cpulocal.cc.

References MipsISA::cpuNum, and DPRINTF.

void CpuLocalTimer::Timer::unserialize ( CheckpointIn cp)
overridevirtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Definition at line 377 of file timer_cpulocal.cc.

References DPRINTF, and UNSERIALIZE_SCALAR.

void CpuLocalTimer::Timer::watchdogAtZero ( )

Definition at line 308 of file timer_cpulocal.cc.

References MipsISA::cpuNum, DPRINTF, and fatal.

void CpuLocalTimer::Timer::write ( PacketPtr  pkt,
Addr  daddr 
)

Handle write for a single timer.

Definition at line 171 of file timer_cpulocal.cc.

References DPRINTF, Packet::get(), if(), and panic.

Referenced by CpuLocalTimer::write().

Friends And Related Function Documentation

friend class CpuLocalTimer
friend

Definition at line 151 of file timer_cpulocal.hh.

Member Data Documentation

Bitfield< 1 > CpuLocalTimer::Timer::autoReload

Definition at line 78 of file timer_cpulocal.hh.

uint32_t CpuLocalTimer::Timer::cpuNum

Cpu this timer is attached to.

Definition at line 104 of file timer_cpulocal.hh.

Referenced by CpuLocalTimer::CpuLocalTimer().

Bitfield< 2 > CpuLocalTimer::Timer::intEnable

Definition at line 79 of file timer_cpulocal.hh.

uint32_t CpuLocalTimer::Timer::intNumTimer

Number of interrupt to cause/clear.

Definition at line 100 of file timer_cpulocal.hh.

Referenced by CpuLocalTimer::CpuLocalTimer().

uint32_t CpuLocalTimer::Timer::intNumWatchdog

Definition at line 101 of file timer_cpulocal.hh.

Referenced by CpuLocalTimer::CpuLocalTimer().

EndBitUnion (WatchdogCtrl) protected CpuLocalTimer* CpuLocalTimer::Timer::parent

Pointer to parent class.

Definition at line 91 of file timer_cpulocal.hh.

Referenced by CpuLocalTimer::CpuLocalTimer().

bool CpuLocalTimer::Timer::pendingIntTimer

If an interrupt is currently pending.

Logical and of Timer or Watchdog Ctrl.enable and rawIntTimer or rawIntWatchdog

Definition at line 119 of file timer_cpulocal.hh.

bool CpuLocalTimer::Timer::pendingIntWatchdog

Definition at line 120 of file timer_cpulocal.hh.

Bitfield< 15, 8 > CpuLocalTimer::Timer::prescalar

Definition at line 81 of file timer_cpulocal.hh.

Referenced by read().

bool CpuLocalTimer::Timer::rawIntTimer

If timer has caused an interrupt.

This is irrespective of interrupt enable

Definition at line 112 of file timer_cpulocal.hh.

bool CpuLocalTimer::Timer::rawIntWatchdog

Definition at line 113 of file timer_cpulocal.hh.

bool CpuLocalTimer::Timer::rawResetWatchdog

Definition at line 114 of file timer_cpulocal.hh.

Bitfield<7,3> CpuLocalTimer::Timer::reserved

Definition at line 80 of file timer_cpulocal.hh.

Bitfield<7,4> CpuLocalTimer::Timer::reserved

Definition at line 89 of file timer_cpulocal.hh.

TimerCtrl CpuLocalTimer::Timer::timerControl

Control register as specified above.

Definition at line 107 of file timer_cpulocal.hh.

uint32_t CpuLocalTimer::Timer::timerLoadValue

Value to load into counters when periodic mode reaches 0.

Definition at line 123 of file timer_cpulocal.hh.

EventWrapper<Timer, &Timer::timerAtZero> CpuLocalTimer::Timer::timerZeroEvent

Definition at line 128 of file timer_cpulocal.hh.

WatchdogCtrl CpuLocalTimer::Timer::watchdogControl

Definition at line 108 of file timer_cpulocal.hh.

uint32_t CpuLocalTimer::Timer::watchdogDisableReg

Definition at line 115 of file timer_cpulocal.hh.

uint32_t CpuLocalTimer::Timer::watchdogLoadValue

Definition at line 124 of file timer_cpulocal.hh.

Bitfield<3> CpuLocalTimer::Timer::watchdogMode

Definition at line 88 of file timer_cpulocal.hh.

EventWrapper<Timer, &Timer::watchdogAtZero> CpuLocalTimer::Timer::watchdogZeroEvent

Definition at line 131 of file timer_cpulocal.hh.


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

Generated on Fri Jun 9 2017 13:04:06 for gem5 by doxygen 1.8.6