diff options
author | Benjamin Nash <benash@umich.edu> | 2005-06-23 16:27:06 -0400 |
---|---|---|
committer | Benjamin Nash <benash@umich.edu> | 2005-06-23 16:27:06 -0400 |
commit | e8bcecd0a04638e9d9e6306cbe515c40e9ba0817 (patch) | |
tree | 97e805542159e66c4856f099762135df67f07944 /kern | |
parent | a994f6e07b8fe0f2f04e99990e6b7e41f0d46973 (diff) | |
download | gem5-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.cc | 27 | ||||
-rw-r--r-- | kern/freebsd/freebsd_system.hh | 12 |
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: |