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