ruby: Import ruby and slicc from GEMS
[gem5.git] / src / mem / ruby / system / AbstractMemOrCache.hh
1
2 /*
3 * AbstractMemOrCache.h
4 *
5 * Description:
6 *
7 *
8 */
9
10 #ifndef ABSTRACT_MEM_OR_CACHE_H
11 #define ABSTRACT_MEM_OR_CACHE_H
12
13 #include "Global.hh"
14 #include "AbstractChip.hh"
15 #include "RubyConfig.hh"
16 #include "Address.hh"
17
18 class AbstractMemOrCache {
19 public:
20
21 virtual ~AbstractMemOrCache() {};
22 virtual void setConsumer(Consumer* consumer_ptr) = 0;
23 virtual Consumer* getConsumer() = 0;
24
25 virtual void enqueue (const MsgPtr& message, int latency ) = 0;
26 virtual void enqueueMemRef (MemoryNode& memRef) = 0;
27 virtual void dequeue () = 0;
28 virtual const Message* peek () = 0;
29 virtual bool isReady () = 0;
30 virtual MemoryNode peekNode () = 0;
31 virtual bool areNSlotsAvailable (int n) = 0;
32 virtual void printConfig (ostream& out) = 0;
33 virtual void print (ostream& out) const = 0;
34 virtual void setDebug (int debugFlag) = 0;
35
36 private:
37
38 };
39
40
41 #endif
42