Syscall DPRINTF and warning cleanup.
authorSteve Reinhardt <stever@eecs.umich.edu>
Fri, 11 Nov 2005 02:05:31 +0000 (21:05 -0500)
committerSteve Reinhardt <stever@eecs.umich.edu>
Fri, 11 Nov 2005 02:05:31 +0000 (21:05 -0500)
base/trace.hh:
    Need std:: on DPRINTFR reference to string class.
base/traceflags.py:
    Remove SyscallWarnings trace flag... we should always print warnings
    so nothing undesirable goes unnoticed.  Replaced with (currently unused)
    Syscall flag.
sim/syscall_emul.cc:
    Change SyscallWarning DPRINTFs into warn() calls.
    Uncomment SyscallVerbose DPRINTFs.
sim/syscall_emul.hh:
    Change SyscallWarning DPRINTFs into warn() calls.
    Call fatal() instead of ad-hoc termination.

--HG--
extra : convert_revision : dc6c2ce3691a129f697b6a6ae5d889e2dbaab228

base/trace.hh
base/traceflags.py
sim/syscall_emul.cc
sim/syscall_emul.hh

index 02f1b0de970bef16f1b7723d1fd8d4a95c858c24..5e14f1bfff7ce354217f1d741a4e164d12cc48d3 100644 (file)
@@ -203,7 +203,7 @@ do { \
 #define DPRINTFR(x, args...) \
 do { \
     if (Trace::IsOn(Trace::x)) \
-        __dprintf((Tick)-1, string(), args, cp::ArgListNull()); \
+        __dprintf((Tick)-1, std::string(), args, cp::ArgListNull());   \
 } while (0)
 
 #define DPRINTFN(args...) \
index d44d4468184ee553cd2e74100025fd8a4cd7a095..e814a00fbf377b59bb35be8b86b5730bfbdf83a8 100644 (file)
@@ -98,7 +98,7 @@ baseFlags = [
     'Serialize',
     'Event',
     'PCEvent',
-    'SyscallWarnings',
+    'Syscall',
     'SyscallVerbose',
     'DiskImage',
     'DiskImageRead',
index 5abbdfd7413abc64bd552e57aaba1d3cd602a54a..4ae2d263141d24fc5d5f9d49527715dc193db70f 100644 (file)
@@ -61,12 +61,7 @@ SyscallReturn
 unimplementedFunc(SyscallDesc *desc, int callnum, Process *process,
                   ExecContext *xc)
 {
-    cerr << "Error: syscall " << desc->name
-         << " (#" << callnum << ") unimplemented.";
-    cerr << "  Args: " << xc->getSyscallArg(0) << ", " << xc->getSyscallArg(1)
-         << ", ..." << endl;
-
-    abort();
+    fatal("syscall %s (#%d) unimplemented.", desc->name, callnum);
 }
 
 
@@ -74,10 +69,8 @@ SyscallReturn
 ignoreFunc(SyscallDesc *desc, int callnum, Process *process,
            ExecContext *xc)
 {
-    DCOUT(SyscallWarnings) << "Warning: ignoring syscall " << desc->name
-                           << "(" << xc->getSyscallArg(0)
-                           << ", " << xc->getSyscallArg(1)
-                           << ", ...)" << endl;
+    warn("ignoring syscall %s(%d, %d, ...)", desc->name,
+         xc->getSyscallArg(0), xc->getSyscallArg(1));
 
     return 0;
 }
index d061f868e0fa36a24a7be0543cfc981b164fe5da..17889113e05ded0483a2bb203cb92300d655d157 100644 (file)
@@ -272,7 +272,7 @@ ioctlFunc(SyscallDesc *desc, int callnum, Process *process,
     int fd = xc->getSyscallArg(0);
     unsigned req = xc->getSyscallArg(1);
 
-    // DPRINTFR(SyscallVerbose, "ioctl(%d, 0x%x, ...)\n", fd, req);
+    DPRINTF(SyscallVerbose, "ioctl(%d, 0x%x, ...)\n", fd, req);
 
     if (fd < 0 || process->sim_fd(fd) < 0) {
         // doesn't map to any simulator fd: not a valid target fd
@@ -396,7 +396,7 @@ fstatFunc(SyscallDesc *desc, int callnum, Process *process,
 {
     int fd = process->sim_fd(xc->getSyscallArg(0));
 
-    // DPRINTFR(SyscallVerbose, "fstat(%d, ...)\n", fd);
+    DPRINTF(SyscallVerbose, "fstat(%d, ...)\n", fd);
 
     if (fd < 0)
         return -EBADF;
@@ -493,8 +493,8 @@ mmapFunc(SyscallDesc *desc, int num, Process *p, ExecContext *xc)
     }
 
     if (!(flags & OS::TGT_MAP_ANONYMOUS)) {
-        DPRINTF(SyscallWarnings, "Warning: allowing mmap of file @ fd %d.  "
-                "This will break if not /dev/zero.", xc->getSyscallArg(4));
+        warn("allowing mmap of file @ fd %d. "
+             "This will break if not /dev/zero.", xc->getSyscallArg(4));
     }
 
     return start;
@@ -555,9 +555,8 @@ getrusageFunc(SyscallDesc *desc, int callnum, Process *process,
     if (who != OS::RUSAGE_SELF) {
         // don't really handle THREAD or CHILDREN, but just warn and
         // plow ahead
-        DCOUT(SyscallWarnings)
-            << "Warning: getrusage() only supports RUSAGE_SELF."
-            << "  Parameter " << who << " ignored." << std::endl;
+        warn("getrusage() only supports RUSAGE_SELF.  Parameter %d ignored.",
+             who);
     }
 
     getElapsedTime(rup->ru_utime.tv_sec, rup->ru_utime.tv_usec);