diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2003-10-28 23:24:40 -0800 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2003-10-28 23:24:40 -0800 |
commit | a0f3ee7e1770138edd4ee65a2ce6ba2a017d792e (patch) | |
tree | 7557d3370a70bbd2d89077a097b2a8c124cb2912 /sim/param.cc | |
parent | 3761bcf076e9289f34b4863d87e4b2afdd276341 (diff) | |
download | gem5-a0f3ee7e1770138edd4ee65a2ce6ba2a017d792e.tar.xz |
Add a few configuration DPRINTFs.
Fix handling of chars (uint8_ts) in serialization.
Minor cleanup.
sim/param.cc:
Add specialization of showParam for char: output as ints, not as characters.
Clean up comments a bit.
--HG--
extra : convert_revision : 96349382447d892679dda9f83c028eec64252dc0
Diffstat (limited to 'sim/param.cc')
-rw-r--r-- | sim/param.cc | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/sim/param.cc b/sim/param.cc index 1ae11fdd2..5f3f604c1 100644 --- a/sim/param.cc +++ b/sim/param.cc @@ -85,8 +85,8 @@ BaseParam::die(const string &err) const //////////////////////////////////////////////////////////////////////// // -// Integer types all use to_number for parsing and '<<' for -// displaying +// The base implementations use to_number for parsing and '<<' for +// displaying, suitable for integer types. // template <class T> bool @@ -103,8 +103,31 @@ showParam(ostream &os, const T &value) } // -// Floating-point types +// Template specializations: +// - char (8-bit integer) +// - floating-point types +// - bool +// - string // + +// Treat 8-bit ints (chars) as ints on output, not as chars +template <> +void +showParam(ostream &os, const char &value) +{ + os << (int)value; +} + + +template <> +void +showParam(ostream &os, const unsigned char &value) +{ + os << (unsigned int)value; +} + + +// Use sscanf() for FP types as to_number() only handles integers template <> bool parseParam(const string &s, float &value) @@ -119,9 +142,7 @@ parseParam(const string &s, double &value) return (sscanf(s.c_str(), "%lf", &value) == 1); } -// -// bool -// +// Be flexible about what we take for bool template <> bool parseParam(const string &s, bool &value) @@ -141,7 +162,7 @@ parseParam(const string &s, bool &value) return false; } - +// Display bools as strings template <> void showParam(ostream &os, const bool &value) @@ -150,9 +171,7 @@ showParam(ostream &os, const bool &value) } -// -// string -// +// String requires no processing to speak of template <> bool parseParam(const string &s, string &value) |