Deleted Added
sdiff udiff text old ( 5184:8782de2949e5 ) new ( 5222:bb733a878f85 )
full compact
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
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;
9 * redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the

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

20 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
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 * Authors: Gabe Black
29 */
30
31#ifndef __ARCH_MIPS_TLB_HH__
32#define __ARCH_MIPS_TLB_HH__
33
34#include "params/MipsDTB.hh"
35#include "params/MipsITB.hh"
36#include "sim/tlb.hh"
37
38namespace MipsISA
39{
40 struct TlbEntry
41 {
42 Addr _pageStart;
43 TlbEntry() {}
44 TlbEntry(Addr asn, Addr vaddr, Addr paddr) : _pageStart(paddr) {}
45
46 Addr pageStart()
47 {
48 return _pageStart;
49 }
50
51 void serialize(std::ostream &os);
52 void unserialize(Checkpoint *cp, const std::string &section);
53 };
54
55 class TLB : public GenericTLB
56 {
57 public:
58 typedef MipsTLBParams Params;
59 TLB(const Params *p) : GenericTLB(p)
60 {}
61
62 Fault translate(RequestPtr req, ThreadContext *tc, bool=false);
63 };
64
65 class ITB : public TLB
66 {
67 public:
68 typedef MipsITBParams Params;
69 ITB(const Params *p) : TLB(p)
70 {}
71 };
72
73 class DTB : public TLB
74 {
75 public:
76 typedef MipsDTBParams Params;
77 DTB(const Params *p) : TLB(p)
78 {}
79 };
80};
81
82#endif // __ARCH_MIPS_TLB_HH__