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