typedef const Addr FaultVect;
-class AlphaFault : public FaultBase
+class AlphaFault : public virtual FaultBase
{
- private:
- static FaultName _name;
- static FaultVect _vect;
- static FaultStat _stat;
public:
- FaultName name() {return _name;}
- virtual FaultVect vect() {return _vect;}
- virtual FaultStat & stat() {return _stat;}
+#if FULL_SYSTEM
+ void ev5_trap(ExecContext * xc);
+#endif
+ virtual FaultVect vect() = 0;
};
-class AlphaMachineCheckFault : public MachineCheckFault
+class AlphaMachineCheckFault :
+ public MachineCheckFault,
+ public AlphaFault
{
private:
static FaultVect _vect;
+ static FaultStat _stat;
public:
+#if FULL_SYSTEM
+ void ev5_trap(ExecContext * xc);
+#endif
FaultVect vect() {return _vect;}
+ FaultStat & stat() {return _stat;}
};
-class AlphaAlignmentFault : public AlignmentFault
+class AlphaAlignmentFault :
+ public AlignmentFault,
+ public AlphaFault
{
private:
static FaultVect _vect;
+ static FaultStat _stat;
public:
+#if FULL_SYSTEM
+ void ev5_trap(ExecContext * xc);
+#endif
FaultVect vect() {return _vect;}
+ FaultStat & stat() {return _stat;}
};
static inline Fault genMachineCheckFault()