faults.hh revision 2090
16899SN/A/* 26899SN/A * Copyright (c) 2003-2005 The Regents of The University of Michigan 36899SN/A * All rights reserved. 46899SN/A * 56899SN/A * Redistribution and use in source and binary forms, with or without 66899SN/A * modification, are permitted provided that the following conditions are 76899SN/A * met: redistributions of source code must retain the above copyright 86899SN/A * notice, this list of conditions and the following disclaimer; 96899SN/A * redistributions in binary form must reproduce the above copyright 106899SN/A * notice, this list of conditions and the following disclaimer in the 116899SN/A * documentation and/or other materials provided with the distribution; 126899SN/A * neither the name of the copyright holders nor the names of its 136899SN/A * contributors may be used to endorse or promote products derived from 146899SN/A * this software without specific prior written permission. 156899SN/A * 166899SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 176899SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 186899SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 196899SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 206899SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 216899SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 226899SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 236899SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 246899SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 256899SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 266899SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 276899SN/A */ 286899SN/A 296899SN/A#ifndef __ALPHA_FAULTS_HH__ 307053SN/A#define __ALPHA_FAULTS_HH__ 317053SN/A 326899SN/A#include "sim/faults.hh" 337055SN/A#include "arch/isa_traits.hh" //For the Addr type 348229Snate@binkert.org 357454SN/Aclass AlphaFault : public Fault 367055SN/A{ 377632SBrad.Beckmann@amd.compublic: 386899SN/A AlphaFault(char * newName, int newId, Addr newVect) : Fault(newName, newId), vect(newVect) {;} 397053SN/A TheISA::Addr vect; 406899SN/A}; 418229Snate@binkert.org 428229Snate@binkert.orgextern class ResetFaultType : public AlphaFault 436899SN/A{ 446899SN/Apublic: 457053SN/A ResetFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 466899SN/A} * ResetFault; 477053SN/A 488922Swilliam.wang@arm.comextern class ArithmeticFaultType : public AlphaFault 497053SN/A{ 507053SN/Apublic: 517053SN/A ArithmeticFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 526899SN/A} * ArithmeticFault; 537053SN/A 548932SBrad.Beckmann@amd.comextern class InterruptFaultType : public AlphaFault 558932SBrad.Beckmann@amd.com{ 568932SBrad.Beckmann@amd.compublic: 578932SBrad.Beckmann@amd.com InterruptFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 588932SBrad.Beckmann@amd.com} * InterruptFault; 598932SBrad.Beckmann@amd.com 608950Sandreas.hansson@arm.comextern class NDtbMissFaultType : public AlphaFault 618950Sandreas.hansson@arm.com{ 627053SN/Apublic: 636899SN/A NDtbMissFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 647053SN/A} * NDtbMissFault; 656899SN/A 667053SN/Aextern class PDtbMissFaultType : public AlphaFault 677053SN/A{ 688922Swilliam.wang@arm.compublic: 698922Swilliam.wang@arm.com PDtbMissFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 707053SN/A} * PDtbMissFault; 716899SN/A 727053SN/Aextern class DtbPageFaultType : public AlphaFault 737053SN/A{ 747053SN/Apublic: 757053SN/A DtbPageFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 766899SN/A} * DtbPageFault; 777053SN/A 787053SN/Aextern class DtbAcvFaultType : public AlphaFault 797053SN/A{ 807053SN/Apublic: 817053SN/A DtbAcvFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 827053SN/A} * DtbAcvFault; 836899SN/A 847053SN/Aextern class ItbMissFaultType : public AlphaFault 857053SN/A{ 867053SN/Apublic: 877053SN/A ItbMissFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 887053SN/A} * ItbMissFault; 896899SN/A 907053SN/Aextern class ItbPageFaultType : public AlphaFault 917053SN/A{ 927053SN/Apublic: 936899SN/A ItbPageFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 948922Swilliam.wang@arm.com} * ItbPageFault; 958922Swilliam.wang@arm.com 966899SN/Aextern class ItbAcvFaultType : public AlphaFault 978950Sandreas.hansson@arm.com{ 988950Sandreas.hansson@arm.compublic: 998932SBrad.Beckmann@amd.com ItbAcvFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 1008932SBrad.Beckmann@amd.com} * ItbAcvFault; 1016899SN/A 1027053SN/Aextern class UnimplementedOpcodeFaultType : public AlphaFault 1036899SN/A{ 1047053SN/Apublic: 1056899SN/A UnimplementedOpcodeFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 1067053SN/A} * UnimplementedOpcodeFault; 1076899SN/A 1087055SN/Aextern class FloatEnableFaultType : public AlphaFault 1097053SN/A{ 1107055SN/Apublic: 1116899SN/A FloatEnableFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 1127055SN/A} * FloatEnableFault; 1138184Ssomayeh@cs.wisc.edu 1146899SN/Aextern class PalFaultType : public AlphaFault 1158832SAli.Saidi@ARM.com{ 1167053SN/Apublic: 1177053SN/A PalFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 1187053SN/A} * PalFault; 1197053SN/A 1207053SN/Aextern class IntegerOverflowFaultType : public AlphaFault 1216899SN/A{ 1227053SN/Apublic: 1237053SN/A IntegerOverflowFaultType(char * newName, int newId, Addr newVect) : AlphaFault(newName, newId, newVect) {;} 1247053SN/A} * IntegerOverflowFault; 1257053SN/A 1267053SN/Aextern Fault ** ListOfFaults[]; 1277053SN/Aextern int NumFaults; 1287053SN/A 1297053SN/A#endif // __FAULTS_HH__ 1307053SN/A