changeset aafd1d2e13e3 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=aafd1d2e13e3
description:
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.
diffstat:
src/arch/generic/debugfaults.hh | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diffs (33 lines):
diff -r d0772caaeacd -r aafd1d2e13e3 src/arch/generic/debugfaults.hh
--- a/src/arch/generic/debugfaults.hh Tue Sep 27 00:16:33 2011 -0700
+++ b/src/arch/generic/debugfaults.hh Tue Sep 27 00:17:09 2011 -0700
@@ -47,6 +47,7 @@
namespace GenericISA
{
+
class M5DebugFault : public FaultBase
{
public:
@@ -106,6 +107,21 @@
}
}
};
+
+template <int func>
+class M5VarArgsFault : public M5DebugFault
+{
+ public:
+ M5VarArgsFault(const std::string &format, CPRINTF_DECLARATION) :
+ M5DebugFault((DebugFunc)func, csprintf(format, VARARGS_ALLARGS))
+ {}
+};
+
+typedef M5VarArgsFault<M5DebugFault::PanicFunc> M5PanicFault;
+typedef M5VarArgsFault<M5DebugFault::FatalFunc> M5FatalFault;
+typedef M5VarArgsFault<M5DebugFault::WarnFunc> M5WarnFault;
+typedef M5VarArgsFault<M5DebugFault::WarnOnceFunc> M5WarnOnceFault;
+
} // namespace GenericISA
#endif // __ARCH_GENERIC_DEBUGFAULTS_HH__
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev