From: Gabe Black Date: Tue, 27 Sep 2011 07:17:09 +0000 (-0700) Subject: Faults: Add in generic faults that work like panics, warns, etc. X-Git-Tag: stable_2012_02_02~45 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2ed3eef9b046472ef20a6c7829e3aa1814d929fb;p=gem5.git Faults: Add in generic faults that work like panics, warns, etc. These faults take varargs to their constructors which they print into a string and pass to the M5DebugFault base class. They are basically faults wrapped around panics, faults, warns, and warnonce-es so that they happen only at commit. --- diff --git a/src/arch/generic/debugfaults.hh b/src/arch/generic/debugfaults.hh index 3389b0833..2a10ced92 100644 --- a/src/arch/generic/debugfaults.hh +++ b/src/arch/generic/debugfaults.hh @@ -47,6 +47,7 @@ namespace GenericISA { + class M5DebugFault : public FaultBase { public: @@ -106,6 +107,21 @@ class M5DebugFault : public FaultBase } } }; + +template +class M5VarArgsFault : public M5DebugFault +{ + public: + M5VarArgsFault(const std::string &format, CPRINTF_DECLARATION) : + M5DebugFault((DebugFunc)func, csprintf(format, VARARGS_ALLARGS)) + {} +}; + +typedef M5VarArgsFault M5PanicFault; +typedef M5VarArgsFault M5FatalFault; +typedef M5VarArgsFault M5WarnFault; +typedef M5VarArgsFault M5WarnOnceFault; + } // namespace GenericISA #endif // __ARCH_GENERIC_DEBUGFAULTS_HH__