gem5/src/mem/ruby/system/AbstractMemOrCache.hh
Nathan Binkert 92de70b69a ruby: Import the latest ruby changes from gems.
This was done with an automated process, so there could be things that were
done in this tree in the past that didn't make it.  One known regression
is that atomic memory operations do not seem to work properly anymore.
2009-07-06 15:49:47 -07:00

41 lines
878 B
C++

/*
* AbstractMemOrCache.hh
*
* Description:
*
*
*/
#ifndef ABSTRACT_MEM_OR_CACHE_H
#define ABSTRACT_MEM_OR_CACHE_H
#include "mem/ruby/common/Global.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