From d60de7122da3a90a0204853f633d34d93dcc622f Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Sat, 24 Sep 2005 14:20:29 -0400 Subject: Add functions to System object to set up function-based events, including automatically fixing up addresses to deal with optionally executed Alpha gp update prolog. SConscript: Remove freebsd_events.cc and linux_events.cc. base/remote_gdb.cc: cpu/pc_event.cc: kern/system_events.cc: kern/system_events.hh: PCEvents now schedule themselves in constructor. cpu/pc_event.hh: PCEvents now schedule themselves in the constructor. Get rid of constructor versions that don't take an address and all the schedule() methods that are now unnecessary. kern/freebsd/freebsd_system.cc: kern/freebsd/freebsd_system.hh: Use new System methods to schedule function-based events. Move FreeBSD-specific function event classes into FreebsdSystem. kern/linux/linux_system.cc: kern/linux/linux_system.hh: Use new System methods to schedule function-based events. Move Linux-specific function event classes into LinuxSystem. kern/tru64/tru64_events.hh: PCEvents now schedule themselves in constructor. Add DebugPrintfrEvent to encapsulate raw setting as new type (to work better with new System function-event method.) kern/tru64/tru64_system.cc: Use new System methods to schedule function-based events. kern/tru64/tru64_system.hh: Add DebugPrintfrEvent to encapsulate raw setting as new type (to work better with new System function-event method.) sim/system.cc: sim/system.hh: Add functions to set up function-based events, including automatically fixing up addresses to deal with optionally executed Alpha gp update prolog. --HG-- extra : convert_revision : c2cf09144297b6602afe755a34a0a2227023783f --- kern/freebsd/freebsd_system.hh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'kern/freebsd/freebsd_system.hh') diff --git a/kern/freebsd/freebsd_system.hh b/kern/freebsd/freebsd_system.hh index 6429b5690..ecb842ec6 100644 --- a/kern/freebsd/freebsd_system.hh +++ b/kern/freebsd/freebsd_system.hh @@ -29,13 +29,22 @@ #ifndef __KERN_FREEBSD_FREEBSD_SYSTEM_HH__ #define __KERN_FREEBSD_FREEBSD_SYSTEM_HH__ -#include "kern/freebsd/freebsd_events.hh" +#include "kern/system_events.hh" class FreebsdSystem : public System { private: + class SkipCalibrateClocksEvent : public SkipFuncEvent + { + public: + SkipCalibrateClocksEvent(PCEventQueue *q, const std::string &desc, + Addr addr) + : SkipFuncEvent(q, desc, addr) {} + virtual void process(ExecContext *xc); + }; + SkipFuncEvent *skipDelayEvent; - FreebsdSkipCalibrateClocksEvent *skipCalibrateClocks; + SkipCalibrateClocksEvent *skipCalibrateClocks; public: FreebsdSystem(Params *p); -- cgit v1.2.3