Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
[gem5.git] / kern / system_events.hh
index 7f658bde9320ee5b2bbd7df5093de69be964ccc9..246140a09567e579984d805a678f610b93c39670 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004 The Regents of The University of Michigan
+ * Copyright (c) 2004-2005 The Regents of The University of Michigan
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,21 +36,51 @@ class System;
 class SkipFuncEvent : public PCEvent
 {
   public:
-    SkipFuncEvent(PCEventQueue *q, const std::string &desc)
-        : PCEvent(q, desc) {}
+    SkipFuncEvent(PCEventQueue *q, const std::string &desc, Addr addr)
+        : PCEvent(q, desc, addr)
+    {}
     virtual void process(ExecContext *xc);
 };
 
 class FnEvent : public PCEvent
 {
   public:
-    FnEvent(PCEventQueue *q, const std::string &desc, System *system);
+    FnEvent(PCEventQueue *q, const std::string &desc, Addr addr,
+            Stats::MainBin *bin);
     virtual void process(ExecContext *xc);
     std::string myname() const { return _name; }
 
   private:
     std::string _name;
-    Stats::MainBin *myBin;
+    Stats::MainBin *mybin;
 };
 
+class IdleStartEvent : public PCEvent
+{
+  public:
+    IdleStartEvent(PCEventQueue *q, const std::string &desc, Addr addr)
+        : PCEvent(q, desc, addr)
+    {}
+    virtual void process(ExecContext *xc);
+};
+
+class InterruptStartEvent : public PCEvent
+{
+  public:
+    InterruptStartEvent(PCEventQueue *q, const std::string &desc, Addr addr)
+        : PCEvent(q, desc, addr)
+    {}
+    virtual void process(ExecContext *xc);
+};
+
+class InterruptEndEvent : public PCEvent
+{
+  public:
+    InterruptEndEvent(PCEventQueue *q, const std::string &desc, Addr addr)
+        : PCEvent(q, desc, addr)
+    {}
+    virtual void process(ExecContext *xc);
+};
+
+
 #endif // __SYSTEM_EVENTS_HH__