faults.hh revision 2090
113996Sgiacomo.travaglini@arm.com/* 29525SAndreas.Sandberg@ARM.com * Copyright (c) 2003-2005 The Regents of The University of Michigan 39525SAndreas.Sandberg@ARM.com * All rights reserved. 49525SAndreas.Sandberg@ARM.com * 59525SAndreas.Sandberg@ARM.com * Redistribution and use in source and binary forms, with or without 69525SAndreas.Sandberg@ARM.com * modification, are permitted provided that the following conditions are 79525SAndreas.Sandberg@ARM.com * met: redistributions of source code must retain the above copyright 89525SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer; 99525SAndreas.Sandberg@ARM.com * redistributions in binary form must reproduce the above copyright 109525SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer in the 119525SAndreas.Sandberg@ARM.com * documentation and/or other materials provided with the distribution; 129525SAndreas.Sandberg@ARM.com * neither the name of the copyright holders nor the names of its 139525SAndreas.Sandberg@ARM.com * contributors may be used to endorse or promote products derived from 149525SAndreas.Sandberg@ARM.com * this software without specific prior written permission. 159525SAndreas.Sandberg@ARM.com * 169525SAndreas.Sandberg@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 179525SAndreas.Sandberg@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 189525SAndreas.Sandberg@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 199525SAndreas.Sandberg@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 209525SAndreas.Sandberg@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 219525SAndreas.Sandberg@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 229525SAndreas.Sandberg@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 239525SAndreas.Sandberg@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 249525SAndreas.Sandberg@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 259525SAndreas.Sandberg@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 269525SAndreas.Sandberg@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 279525SAndreas.Sandberg@ARM.com */ 289525SAndreas.Sandberg@ARM.com 299525SAndreas.Sandberg@ARM.com#ifndef __ALPHA_FAULTS_HH__ 309525SAndreas.Sandberg@ARM.com#define __ALPHA_FAULTS_HH__ 319525SAndreas.Sandberg@ARM.com 329525SAndreas.Sandberg@ARM.com#include "sim/faults.hh" 339525SAndreas.Sandberg@ARM.com#include "arch/isa_traits.hh" //For the Addr type 349525SAndreas.Sandberg@ARM.com 359525SAndreas.Sandberg@ARM.comclass AlphaFault : public Fault 369525SAndreas.Sandberg@ARM.com{ 379525SAndreas.Sandberg@ARM.compublic: 389525SAndreas.Sandberg@ARM.com AlphaFault(char * newName, int newId, Addr newVect) : Fault(newName, newId), vect(newVect) {;} 399525SAndreas.Sandberg@ARM.com TheISA::Addr vect; 4013591Sciro.santilli@arm.com}; 4110749Smatt.evans@arm.com 429525SAndreas.Sandberg@ARM.comextern class ResetFaultType : public AlphaFault 4313996Sgiacomo.travaglini@arm.com{ 4413665Sandreas.sandberg@arm.compublic: 459525SAndreas.Sandberg@ARM.com ResetFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 469525SAndreas.Sandberg@ARM.com} * ResetFault; 479525SAndreas.Sandberg@ARM.com 489525SAndreas.Sandberg@ARM.comextern class ArithmeticFaultType : public AlphaFault 499525SAndreas.Sandberg@ARM.com{ 509525SAndreas.Sandberg@ARM.compublic: 5114152Sgiacomo.travaglini@arm.com ArithmeticFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 5214152Sgiacomo.travaglini@arm.com} * ArithmeticFault; 5314152Sgiacomo.travaglini@arm.com 549525SAndreas.Sandberg@ARM.comextern class InterruptFaultType : public AlphaFault 559525SAndreas.Sandberg@ARM.com{ 5613505Sgiacomo.travaglini@arm.compublic: 5713505Sgiacomo.travaglini@arm.com InterruptFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 5813505Sgiacomo.travaglini@arm.com} * InterruptFault; 5913505Sgiacomo.travaglini@arm.com 6013505Sgiacomo.travaglini@arm.comextern class NDtbMissFaultType : public AlphaFault 6113505Sgiacomo.travaglini@arm.com{ 6213505Sgiacomo.travaglini@arm.compublic: 6313505Sgiacomo.travaglini@arm.com NDtbMissFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 6413505Sgiacomo.travaglini@arm.com} * NDtbMissFault; 6514152Sgiacomo.travaglini@arm.com 6614152Sgiacomo.travaglini@arm.comextern class PDtbMissFaultType : public AlphaFault 6714152Sgiacomo.travaglini@arm.com{ 6814152Sgiacomo.travaglini@arm.compublic: 6914152Sgiacomo.travaglini@arm.com PDtbMissFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 7014152Sgiacomo.travaglini@arm.com} * PDtbMissFault; 7114152Sgiacomo.travaglini@arm.com 7214152Sgiacomo.travaglini@arm.comextern class DtbPageFaultType : public AlphaFault 7314152Sgiacomo.travaglini@arm.com{ 7414152Sgiacomo.travaglini@arm.compublic: 7512739Sandreas.sandberg@arm.com DtbPageFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 7612739Sandreas.sandberg@arm.com} * DtbPageFault; 7712739Sandreas.sandberg@arm.com 7812974Sgiacomo.travaglini@arm.comextern class DtbAcvFaultType : public AlphaFault 7912739Sandreas.sandberg@arm.com{ 8012739Sandreas.sandberg@arm.compublic: 8112739Sandreas.sandberg@arm.com DtbAcvFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 8212739Sandreas.sandberg@arm.com} * DtbAcvFault; 8312739Sandreas.sandberg@arm.com 8412739Sandreas.sandberg@arm.comextern class ItbMissFaultType : public AlphaFault 8512739Sandreas.sandberg@arm.com{ 8612739Sandreas.sandberg@arm.compublic: 8712974Sgiacomo.travaglini@arm.com ItbMissFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 8812739Sandreas.sandberg@arm.com} * ItbMissFault; 8912739Sandreas.sandberg@arm.com 9012739Sandreas.sandberg@arm.comextern class ItbPageFaultType : public AlphaFault 9112739Sandreas.sandberg@arm.com{ 9212974Sgiacomo.travaglini@arm.compublic: 9312739Sandreas.sandberg@arm.com ItbPageFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 9413014Sciro.santilli@arm.com} * ItbPageFault; 9513014Sciro.santilli@arm.com 9613014Sciro.santilli@arm.comextern class ItbAcvFaultType : public AlphaFault 979525SAndreas.Sandberg@ARM.com{ 9813013Sciro.santilli@arm.compublic: 9913013Sciro.santilli@arm.com ItbAcvFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 10013013Sciro.santilli@arm.com} * ItbAcvFault; 1019525SAndreas.Sandberg@ARM.com 1029525SAndreas.Sandberg@ARM.comextern class UnimplementedOpcodeFaultType : public AlphaFault 1039525SAndreas.Sandberg@ARM.com{ 1049525SAndreas.Sandberg@ARM.compublic: 10511652SCurtis.Dunham@arm.com UnimplementedOpcodeFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 10610749Smatt.evans@arm.com} * UnimplementedOpcodeFault; 10713505Sgiacomo.travaglini@arm.com 10813505Sgiacomo.travaglini@arm.comextern class FloatEnableFaultType : public AlphaFault 10913505Sgiacomo.travaglini@arm.com{ 11013505Sgiacomo.travaglini@arm.compublic: 11113505Sgiacomo.travaglini@arm.com FloatEnableFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 11213505Sgiacomo.travaglini@arm.com} * FloatEnableFault; 11313505Sgiacomo.travaglini@arm.com 11413505Sgiacomo.travaglini@arm.comextern class PalFaultType : public AlphaFault 11513505Sgiacomo.travaglini@arm.com{ 11613505Sgiacomo.travaglini@arm.compublic: 11713505Sgiacomo.travaglini@arm.com PalFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 11813505Sgiacomo.travaglini@arm.com} * PalFault; 11913505Sgiacomo.travaglini@arm.com 12010749Smatt.evans@arm.comextern class IntegerOverflowFaultType : public AlphaFault 12110749Smatt.evans@arm.com{ 12210749Smatt.evans@arm.compublic: 12310749Smatt.evans@arm.com IntegerOverflowFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 12410749Smatt.evans@arm.com} * IntegerOverflowFault; 12510749Smatt.evans@arm.com 12610749Smatt.evans@arm.comextern Fault ** ListOfFaults[]; 12710749Smatt.evans@arm.comextern int NumFaults; 12810749Smatt.evans@arm.com 12910749Smatt.evans@arm.com#endif // __FAULTS_HH__ 13010749Smatt.evans@arm.com