faults.hh (3573:2038a2e549b5) faults.hh (3574:dbddfe6ebb2d)
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;

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

108 return new InternalProcessorError;
109}
110
111static inline Fault genAlignmentFault()
112{
113 return new MemAddressNotAligned;
114}
115
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;

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

108 return new InternalProcessorError;
109}
110
111static inline Fault genAlignmentFault()
112{
113 return new MemAddressNotAligned;
114}
115
116class PowerOnReset : public SparcFault<PowerOnReset> {};
116class PowerOnReset : public SparcFault
117{
118 void invoke(ThreadContext * tc);
119};
117
118class WatchDogReset : public SparcFault<WatchDogReset> {};
119
120class ExternallyInitiatedReset : public SparcFault<ExternallyInitiatedReset> {};
121
122class SoftwareInitiatedReset : public SparcFault<SoftwareInitiatedReset> {};
123
124class REDStateException : public SparcFault<REDStateException> {};

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

187 FaultPriority priority() {return 32 - _n;}
188};
189
190class SpillNNormal : public EnumeratedFault<SpillNNormal>
191{
192 public:
193 SpillNNormal(uint32_t n) :
194 EnumeratedFault<SpillNNormal>(n) {;}
120
121class WatchDogReset : public SparcFault<WatchDogReset> {};
122
123class ExternallyInitiatedReset : public SparcFault<ExternallyInitiatedReset> {};
124
125class SoftwareInitiatedReset : public SparcFault<SoftwareInitiatedReset> {};
126
127class REDStateException : public SparcFault<REDStateException> {};

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

190 FaultPriority priority() {return 32 - _n;}
191};
192
193class SpillNNormal : public EnumeratedFault<SpillNNormal>
194{
195 public:
196 SpillNNormal(uint32_t n) :
197 EnumeratedFault<SpillNNormal>(n) {;}
198 //These need to be handled specially to enable spill traps in SE
199#if !FULL_SYSTEM
195 void invoke(ThreadContext * tc);
200 void invoke(ThreadContext * tc);
201#endif
196};
197
198class SpillNOther : public EnumeratedFault<SpillNOther>
199{
200 public:
201 SpillNOther(uint32_t n) :
202 EnumeratedFault<SpillNOther>(n) {;}
203};
204
205class FillNNormal : public EnumeratedFault<FillNNormal>
206{
207 public:
208 FillNNormal(uint32_t n) :
209 EnumeratedFault<FillNNormal>(n) {;}
202};
203
204class SpillNOther : public EnumeratedFault<SpillNOther>
205{
206 public:
207 SpillNOther(uint32_t n) :
208 EnumeratedFault<SpillNOther>(n) {;}
209};
210
211class FillNNormal : public EnumeratedFault<FillNNormal>
212{
213 public:
214 FillNNormal(uint32_t n) :
215 EnumeratedFault<FillNNormal>(n) {;}
216 //These need to be handled specially to enable fill traps in SE
217#if !FULL_SYSTEM
210 void invoke(ThreadContext * tc);
218 void invoke(ThreadContext * tc);
219#endif
211};
212
213class FillNOther : public EnumeratedFault<FillNOther>
214{
215 public:
216 FillNOther(uint32_t n) :
217 EnumeratedFault<FillNOther>(n) {;}
218};
219
220class TrapInstruction : public EnumeratedFault<TrapInstruction>
221{
220};
221
222class FillNOther : public EnumeratedFault<FillNOther>
223{
224 public:
225 FillNOther(uint32_t n) :
226 EnumeratedFault<FillNOther>(n) {;}
227};
228
229class TrapInstruction : public EnumeratedFault<TrapInstruction>
230{
222 private:
223 uint64_t syscall_num;
224 public:
225 TrapInstruction(uint32_t n, uint64_t syscall) :
226 EnumeratedFault<TrapInstruction>(n), syscall_num(syscall) {;}
231 public:
232 TrapInstruction(uint32_t n, uint64_t syscall) :
233 EnumeratedFault<TrapInstruction>(n), syscall_num(syscall) {;}
227#if !FULL_SYSTEM
228 void invoke(ThreadContext * tc);
229#endif
230};
231
232
233} // SparcISA namespace
234
235#endif // __FAULTS_HH__
234};
235
236
237} // SparcISA namespace
238
239#endif // __FAULTS_HH__