faults.hh (5004:7d94cedab264) faults.hh (5568:d14250d688d2)
1/*
2 * Copyright (c) 2003-2005 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;

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

129 FaultName name() const {return _name;}
130 FaultVect vect() {return _vect;}
131 FaultStat & countStat() {return _count;}
132};
133
134class DtbFault : public AlphaFault
135{
136 protected:
1/*
2 * Copyright (c) 2003-2005 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;

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

129 FaultName name() const {return _name;}
130 FaultVect vect() {return _vect;}
131 FaultStat & countStat() {return _count;}
132};
133
134class DtbFault : public AlphaFault
135{
136 protected:
137 AlphaISA::VAddr vaddr;
137 VAddr vaddr;
138 uint32_t reqFlags;
139 uint64_t flags;
140 public:
138 uint32_t reqFlags;
139 uint64_t flags;
140 public:
141 DtbFault(AlphaISA::VAddr _vaddr, uint32_t _reqFlags, uint64_t _flags)
141 DtbFault(VAddr _vaddr, uint32_t _reqFlags, uint64_t _flags)
142 : vaddr(_vaddr), reqFlags(_reqFlags), flags(_flags)
143 { }
144 FaultName name() const = 0;
145 FaultVect vect() = 0;
146 FaultStat & countStat() = 0;
147#if FULL_SYSTEM
148 void invoke(ThreadContext * tc);
149#endif
150};
151
152class NDtbMissFault : public DtbFault
153{
154 private:
155 static FaultName _name;
156 static FaultVect _vect;
157 static FaultStat _count;
158 public:
142 : vaddr(_vaddr), reqFlags(_reqFlags), flags(_flags)
143 { }
144 FaultName name() const = 0;
145 FaultVect vect() = 0;
146 FaultStat & countStat() = 0;
147#if FULL_SYSTEM
148 void invoke(ThreadContext * tc);
149#endif
150};
151
152class NDtbMissFault : public DtbFault
153{
154 private:
155 static FaultName _name;
156 static FaultVect _vect;
157 static FaultStat _count;
158 public:
159 NDtbMissFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags)
159 NDtbMissFault(VAddr vaddr, uint32_t reqFlags, uint64_t flags)
160 : DtbFault(vaddr, reqFlags, flags)
161 { }
162 FaultName name() const {return _name;}
163 FaultVect vect() {return _vect;}
164 FaultStat & countStat() {return _count;}
165#if !FULL_SYSTEM
166 void invoke(ThreadContext * tc);
167#endif
168};
169
170class PDtbMissFault : public DtbFault
171{
172 private:
173 static FaultName _name;
174 static FaultVect _vect;
175 static FaultStat _count;
176 public:
160 : DtbFault(vaddr, reqFlags, flags)
161 { }
162 FaultName name() const {return _name;}
163 FaultVect vect() {return _vect;}
164 FaultStat & countStat() {return _count;}
165#if !FULL_SYSTEM
166 void invoke(ThreadContext * tc);
167#endif
168};
169
170class PDtbMissFault : public DtbFault
171{
172 private:
173 static FaultName _name;
174 static FaultVect _vect;
175 static FaultStat _count;
176 public:
177 PDtbMissFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags)
177 PDtbMissFault(VAddr vaddr, uint32_t reqFlags, uint64_t flags)
178 : DtbFault(vaddr, reqFlags, flags)
179 { }
180 FaultName name() const {return _name;}
181 FaultVect vect() {return _vect;}
182 FaultStat & countStat() {return _count;}
183};
184
185class DtbPageFault : public DtbFault
186{
187 private:
188 static FaultName _name;
189 static FaultVect _vect;
190 static FaultStat _count;
191 public:
178 : DtbFault(vaddr, reqFlags, flags)
179 { }
180 FaultName name() const {return _name;}
181 FaultVect vect() {return _vect;}
182 FaultStat & countStat() {return _count;}
183};
184
185class DtbPageFault : public DtbFault
186{
187 private:
188 static FaultName _name;
189 static FaultVect _vect;
190 static FaultStat _count;
191 public:
192 DtbPageFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags)
192 DtbPageFault(VAddr vaddr, uint32_t reqFlags, uint64_t flags)
193 : DtbFault(vaddr, reqFlags, flags)
194 { }
195 FaultName name() const {return _name;}
196 FaultVect vect() {return _vect;}
197 FaultStat & countStat() {return _count;}
198};
199
200class DtbAcvFault : public DtbFault
201{
202 private:
203 static FaultName _name;
204 static FaultVect _vect;
205 static FaultStat _count;
206 public:
193 : DtbFault(vaddr, reqFlags, flags)
194 { }
195 FaultName name() const {return _name;}
196 FaultVect vect() {return _vect;}
197 FaultStat & countStat() {return _count;}
198};
199
200class DtbAcvFault : public DtbFault
201{
202 private:
203 static FaultName _name;
204 static FaultVect _vect;
205 static FaultStat _count;
206 public:
207 DtbAcvFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags)
207 DtbAcvFault(VAddr vaddr, uint32_t reqFlags, uint64_t flags)
208 : DtbFault(vaddr, reqFlags, flags)
209 { }
210 FaultName name() const {return _name;}
211 FaultVect vect() {return _vect;}
212 FaultStat & countStat() {return _count;}
213};
214
215class DtbAlignmentFault : public DtbFault
216{
217 private:
218 static FaultName _name;
219 static FaultVect _vect;
220 static FaultStat _count;
221 public:
208 : DtbFault(vaddr, reqFlags, flags)
209 { }
210 FaultName name() const {return _name;}
211 FaultVect vect() {return _vect;}
212 FaultStat & countStat() {return _count;}
213};
214
215class DtbAlignmentFault : public DtbFault
216{
217 private:
218 static FaultName _name;
219 static FaultVect _vect;
220 static FaultStat _count;
221 public:
222 DtbAlignmentFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags)
222 DtbAlignmentFault(VAddr vaddr, uint32_t reqFlags, uint64_t flags)
223 : DtbFault(vaddr, reqFlags, flags)
224 { }
225 FaultName name() const {return _name;}
226 FaultVect vect() {return _vect;}
227 FaultStat & countStat() {return _count;}
228};
229
230class ItbFault : public AlphaFault

--- 101 unchanged lines hidden ---
223 : DtbFault(vaddr, reqFlags, flags)
224 { }
225 FaultName name() const {return _name;}
226 FaultVect vect() {return _vect;}
227 FaultStat & countStat() {return _count;}
228};
229
230class ItbFault : public AlphaFault

--- 101 unchanged lines hidden ---