projects
/
gem5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
DmaDevice: fix minor type in error message.
[gem5.git]
/
src
/
dev
/
etherlink.cc
diff --git
a/src/dev/etherlink.cc
b/src/dev/etherlink.cc
index 4130a7b3f37902bafd377e1cd5e218346481b22d..f3f38fc20fb04f08eba5fc097c566f822dfcd329 100644
(file)
--- a/
src/dev/etherlink.cc
+++ b/
src/dev/etherlink.cc
@@
-135,7
+135,7
@@
class LinkDelayEvent : public Event
public:
// non-scheduling version for createForUnserialize()
LinkDelayEvent();
public:
// non-scheduling version for createForUnserialize()
LinkDelayEvent();
- LinkDelayEvent(EtherLink::Link *link, EthPacketPtr pkt
, Tick when
);
+ LinkDelayEvent(EtherLink::Link *link, EthPacketPtr pkt);
void process();
void process();
@@
-153,7
+153,8
@@
EtherLink::Link::txDone()
if (linkDelay > 0) {
DPRINTF(Ethernet, "packet delayed: delay=%d\n", linkDelay);
if (linkDelay > 0) {
DPRINTF(Ethernet, "packet delayed: delay=%d\n", linkDelay);
- new LinkDelayEvent(this, packet, curTick + linkDelay);
+ Event *event = new LinkDelayEvent(this, packet);
+ parent->schedule(event, curTick + linkDelay);
} else {
txComplete(packet);
}
} else {
txComplete(packet);
}
@@
-177,13
+178,12
@@
EtherLink::Link::transmit(EthPacketPtr pkt)
packet = pkt;
Tick delay = (Tick)ceil(((double)pkt->length * ticksPerByte) + 1.0);
packet = pkt;
Tick delay = (Tick)ceil(((double)pkt->length * ticksPerByte) + 1.0);
- if (delayVar != 0) {
- Random<Tick> var;
- delay += var.uniform(0, delayVar);
- }
+ if (delayVar != 0)
+ delay += random_mt.random<Tick>(0, delayVar);
+
DPRINTF(Ethernet, "scheduling packet: delay=%d, (rate=%f)\n",
delay, ticksPerByte);
DPRINTF(Ethernet, "scheduling packet: delay=%d, (rate=%f)\n",
delay, ticksPerByte);
-
doneEvent.schedule(
curTick + delay);
+
parent->schedule(doneEvent,
curTick + delay);
return true;
}
return true;
}
@@
-221,23
+221,22
@@
EtherLink::Link::unserialize(const string &base, Checkpoint *cp,
if (event_scheduled) {
Tick event_time;
paramIn(cp, section, base + ".event_time", event_time);
if (event_scheduled) {
Tick event_time;
paramIn(cp, section, base + ".event_time", event_time);
-
doneEvent.schedule(
event_time);
+
parent->schedule(doneEvent,
event_time);
}
}
LinkDelayEvent::LinkDelayEvent()
}
}
LinkDelayEvent::LinkDelayEvent()
- :
Event(&mainEventQueue),
link(NULL)
+ : link(NULL)
{
setFlags(AutoSerialize);
setFlags(AutoDelete);
}
{
setFlags(AutoSerialize);
setFlags(AutoDelete);
}
-LinkDelayEvent::LinkDelayEvent(EtherLink::Link *l, EthPacketPtr p
, Tick when
)
- :
Event(&mainEventQueue),
link(l), packet(p)
+LinkDelayEvent::LinkDelayEvent(EtherLink::Link *l, EthPacketPtr p)
+ : link(l), packet(p)
{
setFlags(AutoSerialize);
setFlags(AutoDelete);
{
setFlags(AutoSerialize);
setFlags(AutoDelete);
- schedule(when);
}
void
}
void