AbstractEntry.hh (7039:bc0b6ea676b5) AbstractEntry.hh (7055:4e24742201d7)
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 15 unchanged lines hidden (view full) ---

24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
30#define __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
31
1/*
2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 15 unchanged lines hidden (view full) ---

24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
30#define __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
31
32#include <iostream>
33
32#include "mem/ruby/common/Address.hh"
33#include "mem/ruby/common/Global.hh"
34#include "mem/protocol/AccessPermission.hh"
35
36class DataBlock;
37
38class AbstractEntry
39{
40 public:
41 AbstractEntry();
42 virtual ~AbstractEntry() = 0;
43
44 // The methods below are those called by ruby runtime, add when it
45 // is absolutely necessary and should all be virtual function.
46 virtual DataBlock& getDataBlk() = 0;
47
34#include "mem/ruby/common/Address.hh"
35#include "mem/ruby/common/Global.hh"
36#include "mem/protocol/AccessPermission.hh"
37
38class DataBlock;
39
40class AbstractEntry
41{
42 public:
43 AbstractEntry();
44 virtual ~AbstractEntry() = 0;
45
46 // The methods below are those called by ruby runtime, add when it
47 // is absolutely necessary and should all be virtual function.
48 virtual DataBlock& getDataBlk() = 0;
49
48 virtual void print(ostream& out) const = 0;
50 virtual void print(std::ostream& out) const = 0;
49};
50
51};
52
51inline ostream&
52operator<<(ostream& out, const AbstractEntry& obj)
53inline std::ostream&
54operator<<(std::ostream& out, const AbstractEntry& obj)
53{
54 obj.print(out);
55{
56 obj.print(out);
55 out << flush;
57 out << std::flush;
56 return out;
57}
58
59#endif // __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
60
58 return out;
59}
60
61#endif // __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
62