diff options
author | Sean Wilson <spwilson2@wisc.edu> | 2017-06-07 16:32:15 -0500 |
---|---|---|
committer | Sean Wilson <spwilson2@wisc.edu> | 2017-06-20 18:03:21 +0000 |
commit | c8668a663992264911545f8001d462e0885b114c (patch) | |
tree | b91e2fd0b64f01f4606b4d3c9efae91623276652 /src/dev/storage | |
parent | 475f613f2661f3be5f7479c5c7229e5adcb74d93 (diff) | |
download | gem5-c8668a663992264911545f8001d462e0885b114c.tar.xz |
dev: Replace EventWrapper use with EventFunctionWrapper
Change-Id: I6b03cc6f67e76dffb79940431711ae6171901c6a
Signed-off-by: Sean Wilson <spwilson2@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/3748
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/dev/storage')
-rw-r--r-- | src/dev/storage/ide_disk.cc | 11 | ||||
-rw-r--r-- | src/dev/storage/ide_disk.hh | 18 |
2 files changed, 14 insertions, 15 deletions
diff --git a/src/dev/storage/ide_disk.cc b/src/dev/storage/ide_disk.cc index de0986e45..08d374fa3 100644 --- a/src/dev/storage/ide_disk.cc +++ b/src/dev/storage/ide_disk.cc @@ -68,9 +68,14 @@ using namespace TheISA; IdeDisk::IdeDisk(const Params *p) : SimObject(p), ctrl(NULL), image(p->image), diskDelay(p->delay), - dmaTransferEvent(this), dmaReadCG(NULL), dmaReadWaitEvent(this), - dmaWriteCG(NULL), dmaWriteWaitEvent(this), dmaPrdReadEvent(this), - dmaReadEvent(this), dmaWriteEvent(this) + dmaTransferEvent([this]{ doDmaTransfer(); }, name()), + dmaReadCG(NULL), + dmaReadWaitEvent([this]{ doDmaRead(); }, name()), + dmaWriteCG(NULL), + dmaWriteWaitEvent([this]{ doDmaWrite(); }, name()), + dmaPrdReadEvent([this]{ dmaPrdReadDone(); }, name()), + dmaReadEvent([this]{ dmaReadDone(); }, name()), + dmaWriteEvent([this]{ dmaWriteDone(); }, name()) { // Reset the device state reset(p->driveID); diff --git a/src/dev/storage/ide_disk.hh b/src/dev/storage/ide_disk.hh index 9214599e9..fa5bb760d 100644 --- a/src/dev/storage/ide_disk.hh +++ b/src/dev/storage/ide_disk.hh @@ -306,34 +306,28 @@ class IdeDisk : public SimObject // DMA stuff void doDmaTransfer(); - friend class EventWrapper<IdeDisk, &IdeDisk::doDmaTransfer>; - EventWrapper<IdeDisk, &IdeDisk::doDmaTransfer> dmaTransferEvent; + EventFunctionWrapper dmaTransferEvent; void doDmaDataRead(); void doDmaRead(); ChunkGenerator *dmaReadCG; - friend class EventWrapper<IdeDisk, &IdeDisk::doDmaRead>; - EventWrapper<IdeDisk, &IdeDisk::doDmaRead> dmaReadWaitEvent; + EventFunctionWrapper dmaReadWaitEvent; void doDmaDataWrite(); void doDmaWrite(); ChunkGenerator *dmaWriteCG; - friend class EventWrapper<IdeDisk, &IdeDisk::doDmaWrite>; - EventWrapper<IdeDisk, &IdeDisk::doDmaWrite> dmaWriteWaitEvent; + EventFunctionWrapper dmaWriteWaitEvent; void dmaPrdReadDone(); - friend class EventWrapper<IdeDisk, &IdeDisk::dmaPrdReadDone>; - EventWrapper<IdeDisk, &IdeDisk::dmaPrdReadDone> dmaPrdReadEvent; + EventFunctionWrapper dmaPrdReadEvent; void dmaReadDone(); - friend class EventWrapper<IdeDisk, &IdeDisk::dmaReadDone>; - EventWrapper<IdeDisk, &IdeDisk::dmaReadDone> dmaReadEvent; + EventFunctionWrapper dmaReadEvent; void dmaWriteDone(); - friend class EventWrapper<IdeDisk, &IdeDisk::dmaWriteDone>; - EventWrapper<IdeDisk, &IdeDisk::dmaWriteDone> dmaWriteEvent; + EventFunctionWrapper dmaWriteEvent; // Disk image read/write void readDisk(uint32_t sector, uint8_t *data); |