diff options
author | Nathan Binkert <nate@binkert.org> | 2011-04-15 10:44:32 -0700 |
---|---|---|
committer | Nathan Binkert <nate@binkert.org> | 2011-04-15 10:44:32 -0700 |
commit | eddac53ff60c579eff28134bde84783fe36d6214 (patch) | |
tree | 9095c6b64a6fdabf4e0d00b2c8f2ca40ad495f49 /src/python/swig | |
parent | f946d7bcdb4d0b4327857d319dd4ecdd1c320d62 (diff) | |
download | gem5-eddac53ff60c579eff28134bde84783fe36d6214.tar.xz |
trace: reimplement the DTRACE function so it doesn't use a vector
At the same time, rename the trace flags to debug flags since they
have broader usage than simply tracing. This means that
--trace-flags is now --debug-flags and --trace-help is now --debug-help
Diffstat (limited to 'src/python/swig')
-rw-r--r-- | src/python/swig/debug.i | 52 | ||||
-rw-r--r-- | src/python/swig/trace.i | 16 |
2 files changed, 52 insertions, 16 deletions
diff --git a/src/python/swig/debug.i b/src/python/swig/debug.i index 8486075d3..c2eb3ed80 100644 --- a/src/python/swig/debug.i +++ b/src/python/swig/debug.i @@ -1,5 +1,6 @@ /* * Copyright (c) 2006 The Regents of The University of Michigan + * Copyright (c) 2010 The Hewlett-Packard Development Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,11 +32,62 @@ %module(package="m5.internal") debug %{ +#include <cassert> +#include <map> +#include <string> +#include <vector> + +#include "base/debug.hh" #include "base/types.hh" #include "sim/debug.hh" + +using namespace std; + +typedef map<string, Debug::Flag *> FlagsMap; +typedef vector<Debug::Flag *> FlagsVec; + +namespace Debug { +extern int allFlagsVersion; +FlagsMap &allFlags(); +} + +inline int +getAllFlagsVersion() +{ + return Debug::allFlagsVersion; +} + +inline FlagsVec +getAllFlags() +{ + FlagsMap &flagsMap = Debug::allFlags(); + + FlagsVec flags(flagsMap.size()); + + int index = 0; + FlagsMap::iterator i = flagsMap.begin(); + FlagsMap::iterator end = flagsMap.end(); + for (; i != end; ++i) { + assert(index < flags.size()); + flags[index++] = i->second; + } + + return flags; +} + %} +%ignore Debug::SimpleFlag::operator!; + +%include <std_string.i> +%include <std_vector.i> %include <stdint.i> +%include "base/debug.hh" %include "base/types.hh" %include "sim/debug.hh" + +%template(AllFlags) std::vector<Debug::Flag *>; + +int getAllFlagsVersion(); +std::vector<Debug::Flag *> getAllFlags(); diff --git a/src/python/swig/trace.i b/src/python/swig/trace.i index 5407b687f..3b049a3d6 100644 --- a/src/python/swig/trace.i +++ b/src/python/swig/trace.i @@ -41,18 +41,6 @@ output(const char *filename) } inline void -set(const char *flag) -{ - Trace::changeFlag(flag, true); -} - -inline void -clear(const char *flag) -{ - Trace::changeFlag(flag, false); -} - -inline void ignore(const char *expr) { Trace::ignore.setExpression(expr); @@ -61,10 +49,6 @@ ignore(const char *expr) using Trace::enabled; %} -%inline %{ extern void output(const char *string); -extern void set(const char *string); -extern void clear(const char *string); extern void ignore(const char *expr); extern bool enabled; -%} |