Add RTC event for uip bit

dev/tsunami_io.cc:
    Add RTC event to change the state of a uip bit
dev/tsunami_io.hh:
    Add RTC event to change state of an uip bit

--HG--
extra : convert_revision : acde7bdfe152d3e08f7ed53b4c8e910378f6ae67
This commit is contained in:
Ron Dreslinski 2004-01-23 13:01:32 -05:00
parent f9f4a74986
commit 9b397ce7f4
2 changed files with 45 additions and 0 deletions

View file

@ -22,6 +22,38 @@
#include "sim/system.hh"
using namespace std;
TsunamiIO::RTCEvent::RTCEvent()
: Event(&mainEventQueue)
{
DPRINTF(Tsunami, "RTC Event Initilizing\n");
rtc_uip = 0;
schedule(curTick + (curTick % ticksPerSecond));
}
void
TsunamiIO::RTCEvent::process()
{
DPRINTF(Tsunami, "Timer Interrupt\n");
if (rtc_uip == 0) {
rtc_uip = 1; //Signal a second has occured
schedule(curTick + (curTick % ticksPerSecond) - 10);
}
else
rtc_uip = 0; //Done signaling second has occured
schedule(curTick + (curTick % ticksPerSecond));
}
const char *
TsunamiIO::RTCEvent::description()
{
return "tsunami RTC changte second";
}
uint8_t
TsunamiIO::RTCEvent::rtc_uip_value()
{
return rtc_uip;
}
TsunamiIO::ClockEvent::ClockEvent()
: Event(&mainEventQueue)

View file

@ -64,6 +64,19 @@ class TsunamiIO : public MmapDevice
};
class RTCEvent : public Event
{
protected:
Tick interval;
uint8_t rtc_uip;
public:
RTCEvent();
virtual void process();
virtual const char *description();
uint8_t rtc_uip_value();
};
uint8_t mask1;
uint8_t mask2;