summaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
Diffstat (limited to 'dev')
-rw-r--r--dev/console.cc12
-rw-r--r--dev/etherdump.cc18
2 files changed, 26 insertions, 4 deletions
diff --git a/dev/console.cc b/dev/console.cc
index f4156207d..3fa51a414 100644
--- a/dev/console.cc
+++ b/dev/console.cc
@@ -383,8 +383,16 @@ END_INIT_SIM_OBJECT_PARAMS(SimConsole)
CREATE_SIM_OBJECT(SimConsole)
{
string filename = output;
- if (!filename.empty() && append_name)
- filename += "." + getInstanceName();
+ if (filename.empty()) {
+ if (!outputDirectory.empty())
+ filename = outputDirectory + getInstanceName();
+ } else {
+ if (append_name)
+ filename += "." + getInstanceName();
+ if (!outputDirectory.empty())
+ filename = outputDirectory + filename;
+ }
+
SimConsole *console = new SimConsole(getInstanceName(), filename, number);
((ConsoleListener *)listener)->add(console);
((SimConsole *)console)->initInt(intr_control);
diff --git a/dev/etherdump.cc b/dev/etherdump.cc
index 60dc1559d..89f1ce382 100644
--- a/dev/etherdump.cc
+++ b/dev/etherdump.cc
@@ -126,13 +126,27 @@ END_DECLARE_SIM_OBJECT_PARAMS(EtherDump)
BEGIN_INIT_SIM_OBJECT_PARAMS(EtherDump)
- INIT_PARAM_DFLT(file, "file to dump packets to", "")
+ INIT_PARAM(file, "file to dump packets to")
END_INIT_SIM_OBJECT_PARAMS(EtherDump)
CREATE_SIM_OBJECT(EtherDump)
{
- return new EtherDump(getInstanceName(), file);
+ string filename;
+ if (file.isValid()) {
+ filename = file;
+
+ if (filename[0] != '/' && !outputDirectory.empty())
+ filename = outputDirectory + filename;
+ } else {
+ if (outputDirectory.empty()) {
+ filename = "etherdump";
+ } else {
+ filename = outputDirectory + "etherdump";
+ }
+ }
+
+ return new EtherDump(getInstanceName(), filename);
}
REGISTER_SIM_OBJECT("EtherDump", EtherDump)