summaryrefslogtreecommitdiff
path: root/src/kern/linux/printk.cc
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2007-05-01 18:14:16 -0400
committerAli Saidi <saidi@eecs.umich.edu>2007-05-01 18:14:16 -0400
commit3f2b039c98e57cdcd22376552d77603e6233c371 (patch)
tree602cdc359534f9d23c47e125970ca2b52a0efa08 /src/kern/linux/printk.cc
parent39743d35a3dbe5b46e5051ade5394518cef8de9e (diff)
downloadgem5-3f2b039c98e57cdcd22376552d77603e6233c371.tar.xz
change the way dprintf works so the cache accesses required to fulfill the dprintf aren't show in between the Cycle: name:
printing and the actual formatted string being printed --HG-- extra : convert_revision : 8876ba938ba971f854bab490c9af10db039a2e83
Diffstat (limited to 'src/kern/linux/printk.cc')
-rw-r--r--src/kern/linux/printk.cc13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/kern/linux/printk.cc b/src/kern/linux/printk.cc
index 0e9fd6620..866353e31 100644
--- a/src/kern/linux/printk.cc
+++ b/src/kern/linux/printk.cc
@@ -32,22 +32,18 @@
#include <sys/types.h>
#include <algorithm>
-#include "base/trace.hh"
#include "arch/arguments.hh"
+#include "base/trace.hh"
+#include "kern/linux/printk.hh"
using namespace std;
void
-Printk(TheISA::Arguments args)
+Printk(stringstream &out, TheISA::Arguments args)
{
- std::ostream &out = Trace::output();
char *p = (char *)args++;
- ios::fmtflags saved_flags = out.flags();
- char old_fill = out.fill();
- int old_precision = out.precision();
-
while (*p) {
switch (*p) {
case '%': {
@@ -258,8 +254,5 @@ Printk(TheISA::Arguments args)
}
}
- out.flags(saved_flags);
- out.fill(old_fill);
- out.precision(old_precision);
}