AbstractEntry.hh (8645:89929730804b) AbstractEntry.hh (10522:13312d6e1caf)
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;

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

28
29#ifndef __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
30#define __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
31
32#include <iostream>
33
34#include "mem/protocol/AccessPermission.hh"
35
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;

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

28
29#ifndef __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
30#define __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
31
32#include <iostream>
33
34#include "mem/protocol/AccessPermission.hh"
35
36class DataBlock;
37
38class AbstractEntry
39{
40 public:
41 AbstractEntry();
42 virtual ~AbstractEntry() = 0;
43
44 // Get/Set permission of the entry
45 AccessPermission getPermission() const;
46 void changePermission(AccessPermission new_perm);
47
36class AbstractEntry
37{
38 public:
39 AbstractEntry();
40 virtual ~AbstractEntry() = 0;
41
42 // Get/Set permission of the entry
43 AccessPermission getPermission() const;
44 void changePermission(AccessPermission new_perm);
45
48 // The methods below are those called by ruby runtime, add when it
49 // is absolutely necessary and should all be virtual function.
50 virtual DataBlock& getDataBlk() = 0;
51
52 virtual void print(std::ostream& out) const = 0;
53
54 AccessPermission m_Permission; // Access permission for this
55 // block, required by CacheMemory
56};
57
58inline std::ostream&
59operator<<(std::ostream& out, const AbstractEntry& obj)
60{
61 obj.print(out);
62 out << std::flush;
63 return out;
64}
65
66#endif // __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__
46 virtual void print(std::ostream& out) const = 0;
47
48 AccessPermission m_Permission; // Access permission for this
49 // block, required by CacheMemory
50};
51
52inline std::ostream&
53operator<<(std::ostream& out, const AbstractEntry& obj)
54{
55 obj.print(out);
56 out << std::flush;
57 return out;
58}
59
60#endif // __MEM_RUBY_SLICC_INTERFACE_ABSTRACTENTRY_HH__