summaryrefslogtreecommitdiff
path: root/kern
diff options
context:
space:
mode:
authorBenjamin Nash <benash@umich.edu>2005-06-23 16:27:06 -0400
committerBenjamin Nash <benash@umich.edu>2005-06-23 16:27:06 -0400
commite8bcecd0a04638e9d9e6306cbe515c40e9ba0817 (patch)
tree97e805542159e66c4856f099762135df67f07944 /kern
parenta994f6e07b8fe0f2f04e99990e6b7e41f0d46973 (diff)
downloadgem5-e8bcecd0a04638e9d9e6306cbe515c40e9ba0817.tar.xz
Changed timer functionality, ide disk interrupts, and TsunamiFake class to improve FreeBSD compatibility.
dev/ide_disk.cc: Make ide disk set interrupts correctly. dev/tsunami_io.cc: dev/tsunami_io.hh: Implement read of timer counts. kern/freebsd/freebsd_system.cc: kern/freebsd/freebsd_system.hh: Remove SkipFuncEvents that we don't need to skip. python/m5/objects/Tsunami.py: Add size parameter to TsunamiFake class. --HG-- extra : convert_revision : a87e74f2cac0036060ca8cb3fde4760d8c91a5db
Diffstat (limited to 'kern')
-rw-r--r--kern/freebsd/freebsd_system.cc27
-rw-r--r--kern/freebsd/freebsd_system.hh12
2 files changed, 2 insertions, 37 deletions
diff --git a/kern/freebsd/freebsd_system.cc b/kern/freebsd/freebsd_system.cc
index 08d1af824..d7d32cc66 100644
--- a/kern/freebsd/freebsd_system.cc
+++ b/kern/freebsd/freebsd_system.cc
@@ -55,32 +55,13 @@ FreebsdSystem::FreebsdSystem(Params *p)
Addr addr = 0;
/**
- * Any time ide_delay_50ms, calibarte_delay or
- * determine_cpu_caches is called just skip the
- * function. Currently determine_cpu_caches only is used put
- * information in proc, however if that changes in the future we
- * will have to fill in the cache size variables appropriately.
+ * Any time DELAY is called just skip the function.
+ * Replace calibrate_clocks with function below.
*/
skipDelayEvent = new SkipFuncEvent(&pcEventQueue, "DELAY");
if (kernelSymtab->findAddress("DELAY", addr))
skipDelayEvent->schedule(addr+sizeof(MachInst));
- skipOROMEvent = new SkipFuncEvent(&pcEventQueue, "orm_identify");
- if (kernelSymtab->findAddress("orm_identify", addr))
- skipOROMEvent->schedule(addr+sizeof(MachInst));
-
- skipAicEvent = new SkipFuncEvent(&pcEventQueue, "ahc_isa_identify");
- if (kernelSymtab->findAddress("ahc_isa_identify", addr))
- skipAicEvent->schedule(addr+sizeof(MachInst));
-
- skipPNPEvent = new SkipFuncEvent(&pcEventQueue, "pnp_identify");
- if (kernelSymtab->findAddress("pnp_identify", addr))
- skipPNPEvent->schedule(addr+sizeof(MachInst));
-
- skipATAEvent = new SkipFuncEvent(&pcEventQueue, "ata_attach");
- if (kernelSymtab->findAddress("ata_attach", addr))
- skipATAEvent->schedule(addr+sizeof(MachInst));
-
skipCalibrateClocks = new FreebsdSkipCalibrateClocksEvent(&pcEventQueue, "calibrate_clocks");
if (kernelSymtab->findAddress("calibrate_clocks", addr))
skipCalibrateClocks->schedule(addr + sizeof(MachInst) * 2);
@@ -91,10 +72,6 @@ FreebsdSystem::FreebsdSystem(Params *p)
FreebsdSystem::~FreebsdSystem()
{
delete skipDelayEvent;
- delete skipOROMEvent;
- delete skipAicEvent;
- delete skipATAEvent;
- delete skipPNPEvent;
delete skipCalibrateClocks;
}
diff --git a/kern/freebsd/freebsd_system.hh b/kern/freebsd/freebsd_system.hh
index 3e9867733..a3c5f8b92 100644
--- a/kern/freebsd/freebsd_system.hh
+++ b/kern/freebsd/freebsd_system.hh
@@ -35,24 +35,12 @@
#include "kern/freebsd/freebsd_events.hh"
-/**
- * This class skips lengthy functions in the FreeBSD kernel.
- */
class FreebsdSystem : public System
{
private:
- /** PC based event to skip the DELAY call */
SkipFuncEvent *skipDelayEvent;
- SkipFuncEvent *skipOROMEvent;
-
- SkipFuncEvent *skipAicEvent;
-
- SkipFuncEvent *skipPNPEvent;
-
- SkipFuncEvent *skipATAEvent;
-
FreebsdSkipCalibrateClocksEvent *skipCalibrateClocks;
public: