faults.hh (5909:ecbd27e5d1f8) faults.hh (6009:74bc713c71ce)
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * Redistribution and use of this software in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *

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

71 {
72 protected:
73 const char * faultName;
74 const char * mnem;
75 uint8_t vector;
76 uint64_t errorCode;
77
78 X86FaultBase(const char * _faultName, const char * _mnem,
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * Redistribution and use of this software in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *

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

71 {
72 protected:
73 const char * faultName;
74 const char * mnem;
75 uint8_t vector;
76 uint64_t errorCode;
77
78 X86FaultBase(const char * _faultName, const char * _mnem,
79 const uint8_t _vector, uint64_t _errorCode = -1) :
80 faultName(_faultName), mnem(_mnem),
81 vector(_vector), errorCode(_errorCode)
79 const uint8_t _vector, uint64_t _errorCode = (uint64_t)-1)
80 : faultName(_faultName), mnem(_mnem),
81 vector(_vector), errorCode(_errorCode)
82 {
83 }
84
85 const char * name() const
86 {
87 return faultName;
88 }
89

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

110 };
111
112 // Base class for x86 faults which behave as if the underlying instruction
113 // didn't happen.
114 class X86Fault : public X86FaultBase
115 {
116 protected:
117 X86Fault(const char * name, const char * mnem,
82 {
83 }
84
85 const char * name() const
86 {
87 return faultName;
88 }
89

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

110 };
111
112 // Base class for x86 faults which behave as if the underlying instruction
113 // didn't happen.
114 class X86Fault : public X86FaultBase
115 {
116 protected:
117 X86Fault(const char * name, const char * mnem,
118 const uint8_t vector, uint64_t _errorCode = -1) :
119 X86FaultBase(name, mnem, vector, _errorCode)
118 const uint8_t vector, uint64_t _errorCode = (uint64_t)-1)
119 : X86FaultBase(name, mnem, vector, _errorCode)
120 {}
121 };
122
123 // Base class for x86 traps which behave as if the underlying instruction
124 // completed.
125 class X86Trap : public X86FaultBase
126 {
127 protected:
128 X86Trap(const char * name, const char * mnem,
120 {}
121 };
122
123 // Base class for x86 traps which behave as if the underlying instruction
124 // completed.
125 class X86Trap : public X86FaultBase
126 {
127 protected:
128 X86Trap(const char * name, const char * mnem,
129 const uint8_t vector, uint64_t _errorCode = -1) :
130 X86FaultBase(name, mnem, vector, _errorCode)
129 const uint8_t vector, uint64_t _errorCode = (uint64_t)-1)
130 : X86FaultBase(name, mnem, vector, _errorCode)
131 {}
132
133#if FULL_SYSTEM
134 void invoke(ThreadContext * tc);
135#endif
136 };
137
138 // Base class for x86 aborts which seem to be catastrophic failures.
139 class X86Abort : public X86FaultBase
140 {
141 protected:
142 X86Abort(const char * name, const char * mnem,
131 {}
132
133#if FULL_SYSTEM
134 void invoke(ThreadContext * tc);
135#endif
136 };
137
138 // Base class for x86 aborts which seem to be catastrophic failures.
139 class X86Abort : public X86FaultBase
140 {
141 protected:
142 X86Abort(const char * name, const char * mnem,
143 const uint8_t vector, uint64_t _errorCode = -1) :
144 X86FaultBase(name, mnem, vector, _errorCode)
143 const uint8_t vector, uint64_t _errorCode = (uint64_t)-1)
144 : X86FaultBase(name, mnem, vector, _errorCode)
145 {}
146
147#if FULL_SYSTEM
148 void invoke(ThreadContext * tc);
149#endif
150 };
151
152 // Base class for x86 interrupts.
153 class X86Interrupt : public X86FaultBase
154 {
155 protected:
156 X86Interrupt(const char * name, const char * mnem,
145 {}
146
147#if FULL_SYSTEM
148 void invoke(ThreadContext * tc);
149#endif
150 };
151
152 // Base class for x86 interrupts.
153 class X86Interrupt : public X86FaultBase
154 {
155 protected:
156 X86Interrupt(const char * name, const char * mnem,
157 const uint8_t _vector, uint64_t _errorCode = -1) :
158 X86FaultBase(name, mnem, _vector, _errorCode)
157 const uint8_t _vector, uint64_t _errorCode = (uint64_t)-1)
158 : X86FaultBase(name, mnem, _vector, _errorCode)
159 {}
160 };
161
162 class UnimpInstFault : public FaultBase
163 {
164 public:
165 const char * name() const
166 {

--- 267 unchanged lines hidden ---
159 {}
160 };
161
162 class UnimpInstFault : public FaultBase
163 {
164 public:
165 const char * name() const
166 {

--- 267 unchanged lines hidden ---