From 3f2b039c98e57cdcd22376552d77603e6233c371 Mon Sep 17 00:00:00 2001
From: Ali Saidi <saidi@eecs.umich.edu>
Date: Tue, 1 May 2007 18:14:16 -0400
Subject: 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
---
 src/kern/linux/printk.cc | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

(limited to 'src/kern/linux/printk.cc')

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);
 }
 
-- 
cgit v1.2.3