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 --- |