faults.hh (4183:3d19c1d46946) | faults.hh (4695:a63378aed062) |
---|---|
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; --- 52 unchanged lines hidden (view full) --- 61 62class MachineCheckFault : public AlphaFault 63{ 64 private: 65 static FaultName _name; 66 static FaultVect _vect; 67 static FaultStat _count; 68 public: | 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; --- 52 unchanged lines hidden (view full) --- 61 62class MachineCheckFault : public AlphaFault 63{ 64 private: 65 static FaultName _name; 66 static FaultVect _vect; 67 static FaultStat _count; 68 public: |
69 FaultName name() {return _name;} | 69 FaultName name() const {return _name;} |
70 FaultVect vect() {return _vect;} 71 FaultStat & countStat() {return _count;} | 70 FaultVect vect() {return _vect;} 71 FaultStat & countStat() {return _count;} |
72 bool isMachineCheckFault() {return true;} | 72 bool isMachineCheckFault() const {return true;} |
73}; 74 75class AlignmentFault : public AlphaFault 76{ 77 private: 78 static FaultName _name; 79 static FaultVect _vect; 80 static FaultStat _count; 81 public: | 73}; 74 75class AlignmentFault : public AlphaFault 76{ 77 private: 78 static FaultName _name; 79 static FaultVect _vect; 80 static FaultStat _count; 81 public: |
82 FaultName name() {return _name;} | 82 FaultName name() const {return _name;} |
83 FaultVect vect() {return _vect;} 84 FaultStat & countStat() {return _count;} | 83 FaultVect vect() {return _vect;} 84 FaultStat & countStat() {return _count;} |
85 bool isAlignmentFault() {return true;} | 85 bool isAlignmentFault() const {return true;} |
86}; 87 88static inline Fault genMachineCheckFault() 89{ 90 return new MachineCheckFault; 91} 92 93static inline Fault genAlignmentFault() 94{ 95 return new AlignmentFault; 96} 97 98class ResetFault : public AlphaFault 99{ 100 private: 101 static FaultName _name; 102 static FaultVect _vect; 103 static FaultStat _count; 104 public: | 86}; 87 88static inline Fault genMachineCheckFault() 89{ 90 return new MachineCheckFault; 91} 92 93static inline Fault genAlignmentFault() 94{ 95 return new AlignmentFault; 96} 97 98class ResetFault : public AlphaFault 99{ 100 private: 101 static FaultName _name; 102 static FaultVect _vect; 103 static FaultStat _count; 104 public: |
105 FaultName name() {return _name;} | 105 FaultName name() const {return _name;} |
106 FaultVect vect() {return _vect;} 107 FaultStat & countStat() {return _count;} 108}; 109 110class ArithmeticFault : public AlphaFault 111{ 112 protected: 113 bool skipFaultingInstruction() {return true;} 114 private: 115 static FaultName _name; 116 static FaultVect _vect; 117 static FaultStat _count; 118 public: | 106 FaultVect vect() {return _vect;} 107 FaultStat & countStat() {return _count;} 108}; 109 110class ArithmeticFault : public AlphaFault 111{ 112 protected: 113 bool skipFaultingInstruction() {return true;} 114 private: 115 static FaultName _name; 116 static FaultVect _vect; 117 static FaultStat _count; 118 public: |
119 FaultName name() {return _name;} | 119 FaultName name() const {return _name;} |
120 FaultVect vect() {return _vect;} 121 FaultStat & countStat() {return _count;} 122#if FULL_SYSTEM 123 void invoke(ThreadContext * tc); 124#endif 125}; 126 127class InterruptFault : public AlphaFault 128{ 129 protected: 130 bool setRestartAddress() {return false;} 131 private: 132 static FaultName _name; 133 static FaultVect _vect; 134 static FaultStat _count; 135 public: | 120 FaultVect vect() {return _vect;} 121 FaultStat & countStat() {return _count;} 122#if FULL_SYSTEM 123 void invoke(ThreadContext * tc); 124#endif 125}; 126 127class InterruptFault : public AlphaFault 128{ 129 protected: 130 bool setRestartAddress() {return false;} 131 private: 132 static FaultName _name; 133 static FaultVect _vect; 134 static FaultStat _count; 135 public: |
136 FaultName name() {return _name;} | 136 FaultName name() const {return _name;} |
137 FaultVect vect() {return _vect;} 138 FaultStat & countStat() {return _count;} 139}; 140 141class DtbFault : public AlphaFault 142{ 143#if FULL_SYSTEM 144 private: 145 AlphaISA::VAddr vaddr; 146 uint32_t reqFlags; 147 uint64_t flags; 148 public: 149 DtbFault(AlphaISA::VAddr _vaddr, uint32_t _reqFlags, uint64_t _flags) 150 : vaddr(_vaddr), reqFlags(_reqFlags), flags(_flags) 151 { } 152#endif | 137 FaultVect vect() {return _vect;} 138 FaultStat & countStat() {return _count;} 139}; 140 141class DtbFault : public AlphaFault 142{ 143#if FULL_SYSTEM 144 private: 145 AlphaISA::VAddr vaddr; 146 uint32_t reqFlags; 147 uint64_t flags; 148 public: 149 DtbFault(AlphaISA::VAddr _vaddr, uint32_t _reqFlags, uint64_t _flags) 150 : vaddr(_vaddr), reqFlags(_reqFlags), flags(_flags) 151 { } 152#endif |
153 FaultName name() = 0; | 153 FaultName name() const = 0; |
154 FaultVect vect() = 0; 155 FaultStat & countStat() = 0; 156#if FULL_SYSTEM 157 void invoke(ThreadContext * tc); 158#endif 159}; 160 161class NDtbMissFault : public DtbFault 162{ 163 private: 164 static FaultName _name; 165 static FaultVect _vect; 166 static FaultStat _count; 167 public: 168#if FULL_SYSTEM 169 NDtbMissFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 170 : DtbFault(vaddr, reqFlags, flags) 171 { } 172#endif | 154 FaultVect vect() = 0; 155 FaultStat & countStat() = 0; 156#if FULL_SYSTEM 157 void invoke(ThreadContext * tc); 158#endif 159}; 160 161class NDtbMissFault : public DtbFault 162{ 163 private: 164 static FaultName _name; 165 static FaultVect _vect; 166 static FaultStat _count; 167 public: 168#if FULL_SYSTEM 169 NDtbMissFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 170 : DtbFault(vaddr, reqFlags, flags) 171 { } 172#endif |
173 FaultName name() {return _name;} | 173 FaultName name() const {return _name;} |
174 FaultVect vect() {return _vect;} 175 FaultStat & countStat() {return _count;} 176}; 177 178class PDtbMissFault : public DtbFault 179{ 180 private: 181 static FaultName _name; 182 static FaultVect _vect; 183 static FaultStat _count; 184 public: 185#if FULL_SYSTEM 186 PDtbMissFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 187 : DtbFault(vaddr, reqFlags, flags) 188 { } 189#endif | 174 FaultVect vect() {return _vect;} 175 FaultStat & countStat() {return _count;} 176}; 177 178class PDtbMissFault : public DtbFault 179{ 180 private: 181 static FaultName _name; 182 static FaultVect _vect; 183 static FaultStat _count; 184 public: 185#if FULL_SYSTEM 186 PDtbMissFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 187 : DtbFault(vaddr, reqFlags, flags) 188 { } 189#endif |
190 FaultName name() {return _name;} | 190 FaultName name() const {return _name;} |
191 FaultVect vect() {return _vect;} 192 FaultStat & countStat() {return _count;} 193}; 194 195class DtbPageFault : public DtbFault 196{ 197 private: 198 static FaultName _name; 199 static FaultVect _vect; 200 static FaultStat _count; 201 public: 202#if FULL_SYSTEM 203 DtbPageFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 204 : DtbFault(vaddr, reqFlags, flags) 205 { } 206#endif | 191 FaultVect vect() {return _vect;} 192 FaultStat & countStat() {return _count;} 193}; 194 195class DtbPageFault : public DtbFault 196{ 197 private: 198 static FaultName _name; 199 static FaultVect _vect; 200 static FaultStat _count; 201 public: 202#if FULL_SYSTEM 203 DtbPageFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 204 : DtbFault(vaddr, reqFlags, flags) 205 { } 206#endif |
207 FaultName name() {return _name;} | 207 FaultName name() const {return _name;} |
208 FaultVect vect() {return _vect;} 209 FaultStat & countStat() {return _count;} 210}; 211 212class DtbAcvFault : public DtbFault 213{ 214 private: 215 static FaultName _name; 216 static FaultVect _vect; 217 static FaultStat _count; 218 public: 219#if FULL_SYSTEM 220 DtbAcvFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 221 : DtbFault(vaddr, reqFlags, flags) 222 { } 223#endif | 208 FaultVect vect() {return _vect;} 209 FaultStat & countStat() {return _count;} 210}; 211 212class DtbAcvFault : public DtbFault 213{ 214 private: 215 static FaultName _name; 216 static FaultVect _vect; 217 static FaultStat _count; 218 public: 219#if FULL_SYSTEM 220 DtbAcvFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 221 : DtbFault(vaddr, reqFlags, flags) 222 { } 223#endif |
224 FaultName name() {return _name;} | 224 FaultName name() const {return _name;} |
225 FaultVect vect() {return _vect;} 226 FaultStat & countStat() {return _count;} 227}; 228 229class DtbAlignmentFault : public DtbFault 230{ 231 private: 232 static FaultName _name; 233 static FaultVect _vect; 234 static FaultStat _count; 235 public: 236#if FULL_SYSTEM 237 DtbAlignmentFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 238 : DtbFault(vaddr, reqFlags, flags) 239 { } 240#endif | 225 FaultVect vect() {return _vect;} 226 FaultStat & countStat() {return _count;} 227}; 228 229class DtbAlignmentFault : public DtbFault 230{ 231 private: 232 static FaultName _name; 233 static FaultVect _vect; 234 static FaultStat _count; 235 public: 236#if FULL_SYSTEM 237 DtbAlignmentFault(AlphaISA::VAddr vaddr, uint32_t reqFlags, uint64_t flags) 238 : DtbFault(vaddr, reqFlags, flags) 239 { } 240#endif |
241 FaultName name() {return _name;} | 241 FaultName name() const {return _name;} |
242 FaultVect vect() {return _vect;} 243 FaultStat & countStat() {return _count;} 244}; 245 246class ItbFault : public AlphaFault 247{ 248 private: 249 Addr pc; 250 public: 251 ItbFault(Addr _pc) 252 : pc(_pc) 253 { } | 242 FaultVect vect() {return _vect;} 243 FaultStat & countStat() {return _count;} 244}; 245 246class ItbFault : public AlphaFault 247{ 248 private: 249 Addr pc; 250 public: 251 ItbFault(Addr _pc) 252 : pc(_pc) 253 { } |
254 FaultName name() = 0; | 254 FaultName name() const = 0; |
255 FaultVect vect() = 0; 256 FaultStat & countStat() = 0; 257#if FULL_SYSTEM 258 void invoke(ThreadContext * tc); 259#endif 260}; 261 262class ItbMissFault : public ItbFault 263{ 264 private: 265 static FaultName _name; 266 static FaultVect _vect; 267 static FaultStat _count; 268 public: 269 ItbMissFault(Addr pc) 270 : ItbFault(pc) 271 { } | 255 FaultVect vect() = 0; 256 FaultStat & countStat() = 0; 257#if FULL_SYSTEM 258 void invoke(ThreadContext * tc); 259#endif 260}; 261 262class ItbMissFault : public ItbFault 263{ 264 private: 265 static FaultName _name; 266 static FaultVect _vect; 267 static FaultStat _count; 268 public: 269 ItbMissFault(Addr pc) 270 : ItbFault(pc) 271 { } |
272 FaultName name() {return _name;} | 272 FaultName name() const {return _name;} |
273 FaultVect vect() {return _vect;} 274 FaultStat & countStat() {return _count;} 275}; 276 277class ItbPageFault : public ItbFault 278{ 279 private: 280 static FaultName _name; 281 static FaultVect _vect; 282 static FaultStat _count; 283 public: 284 ItbPageFault(Addr pc) 285 : ItbFault(pc) 286 { } | 273 FaultVect vect() {return _vect;} 274 FaultStat & countStat() {return _count;} 275}; 276 277class ItbPageFault : public ItbFault 278{ 279 private: 280 static FaultName _name; 281 static FaultVect _vect; 282 static FaultStat _count; 283 public: 284 ItbPageFault(Addr pc) 285 : ItbFault(pc) 286 { } |
287 FaultName name() {return _name;} | 287 FaultName name() const {return _name;} |
288 FaultVect vect() {return _vect;} 289 FaultStat & countStat() {return _count;} 290}; 291 292class ItbAcvFault : public ItbFault 293{ 294 private: 295 static FaultName _name; 296 static FaultVect _vect; 297 static FaultStat _count; 298 public: 299 ItbAcvFault(Addr pc) 300 : ItbFault(pc) 301 { } | 288 FaultVect vect() {return _vect;} 289 FaultStat & countStat() {return _count;} 290}; 291 292class ItbAcvFault : public ItbFault 293{ 294 private: 295 static FaultName _name; 296 static FaultVect _vect; 297 static FaultStat _count; 298 public: 299 ItbAcvFault(Addr pc) 300 : ItbFault(pc) 301 { } |
302 FaultName name() {return _name;} | 302 FaultName name() const {return _name;} |
303 FaultVect vect() {return _vect;} 304 FaultStat & countStat() {return _count;} 305}; 306 307class UnimplementedOpcodeFault : public AlphaFault 308{ 309 private: 310 static FaultName _name; 311 static FaultVect _vect; 312 static FaultStat _count; 313 public: | 303 FaultVect vect() {return _vect;} 304 FaultStat & countStat() {return _count;} 305}; 306 307class UnimplementedOpcodeFault : public AlphaFault 308{ 309 private: 310 static FaultName _name; 311 static FaultVect _vect; 312 static FaultStat _count; 313 public: |
314 FaultName name() {return _name;} | 314 FaultName name() const {return _name;} |
315 FaultVect vect() {return _vect;} 316 FaultStat & countStat() {return _count;} 317}; 318 319class FloatEnableFault : public AlphaFault 320{ 321 private: 322 static FaultName _name; 323 static FaultVect _vect; 324 static FaultStat _count; 325 public: | 315 FaultVect vect() {return _vect;} 316 FaultStat & countStat() {return _count;} 317}; 318 319class FloatEnableFault : public AlphaFault 320{ 321 private: 322 static FaultName _name; 323 static FaultVect _vect; 324 static FaultStat _count; 325 public: |
326 FaultName name() {return _name;} | 326 FaultName name() const {return _name;} |
327 FaultVect vect() {return _vect;} 328 FaultStat & countStat() {return _count;} 329}; 330 331class PalFault : public AlphaFault 332{ 333 protected: 334 bool skipFaultingInstruction() {return true;} 335 private: 336 static FaultName _name; 337 static FaultVect _vect; 338 static FaultStat _count; 339 public: | 327 FaultVect vect() {return _vect;} 328 FaultStat & countStat() {return _count;} 329}; 330 331class PalFault : public AlphaFault 332{ 333 protected: 334 bool skipFaultingInstruction() {return true;} 335 private: 336 static FaultName _name; 337 static FaultVect _vect; 338 static FaultStat _count; 339 public: |
340 FaultName name() {return _name;} | 340 FaultName name() const {return _name;} |
341 FaultVect vect() {return _vect;} 342 FaultStat & countStat() {return _count;} 343}; 344 345class IntegerOverflowFault : public AlphaFault 346{ 347 private: 348 static FaultName _name; 349 static FaultVect _vect; 350 static FaultStat _count; 351 public: | 341 FaultVect vect() {return _vect;} 342 FaultStat & countStat() {return _count;} 343}; 344 345class IntegerOverflowFault : public AlphaFault 346{ 347 private: 348 static FaultName _name; 349 static FaultVect _vect; 350 static FaultStat _count; 351 public: |
352 FaultName name() {return _name;} | 352 FaultName name() const {return _name;} |
353 FaultVect vect() {return _vect;} 354 FaultStat & countStat() {return _count;} 355}; 356 357} // AlphaISA namespace 358 359#endif // __FAULTS_HH__ | 353 FaultVect vect() {return _vect;} 354 FaultStat & countStat() {return _count;} 355}; 356 357} // AlphaISA namespace 358 359#endif // __FAULTS_HH__ |