summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2017-09-15 17:24:12 -0700
committerGabe Black <gabeblack@google.com>2017-09-26 21:20:02 +0000
commit3734637c0c41eedc5b5dc4f1ced50610a7a17db4 (patch)
tree64ef350e81232177f4a106f838d044bdde8b9342
parentcd5d28594d9708cca2fbbf17e9246cbd890ae336 (diff)
downloadgem5-3734637c0c41eedc5b5dc4f1ced50610a7a17db4.tar.xz
misc: Make the m5 utilities writefile command accept a host path.
When the writefile command is given one command line argument, it's treated as the name of the file in the simulation and on the host. When there are two arguments, the first is the filename in the simulation, and the second is the name on the host. Change-Id: I402925a9ff89665bee9910fb18b7f8b06b8f7d35 Reviewed-on: https://gem5-review.googlesource.com/4850 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
-rw-r--r--util/m5/m5.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/util/m5/m5.c b/util/m5/m5.c
index 82ef73b0f..38da9dc37 100644
--- a/util/m5/m5.c
+++ b/util/m5/m5.c
@@ -140,7 +140,7 @@ read_file(int dest_fid)
}
void
-write_file(const char *filename)
+write_file(const char *filename, const char *host_filename)
{
fprintf(stderr, "opening %s\n", filename);
int src_fid = open(filename, O_RDONLY);
@@ -158,7 +158,7 @@ write_file(const char *filename)
memset(buf, 0, sizeof(buf));
while ((len = read(src_fid, buf, sizeof(buf))) > 0) {
- bytes += m5_write_file(buf, len, offset, filename);
+ bytes += m5_write_file(buf, len, offset, host_filename);
offset += len;
}
fprintf(stderr, "written %d bytes\n", bytes);
@@ -224,12 +224,13 @@ do_read_file(int argc, char *argv[])
void
do_write_file(int argc, char *argv[])
{
- if (argc != 1)
+ if (argc != 1 && argc != 2)
usage();
const char *filename = argv[0];
+ const char *host_filename = (argc == 2) ? argv[1] : argv[0];
- write_file(filename);
+ write_file(filename, host_filename);
}
void
@@ -344,7 +345,7 @@ struct MainFunc mainfuncs[] = {
{ "dumpstats", do_dump_stats, "[delay [period]]" },
{ "dumpresetstats", do_dump_reset_stats, "[delay [period]]" },
{ "readfile", do_read_file, "" },
- { "writefile", do_write_file, "<filename>" },
+ { "writefile", do_write_file, "<filename> [host filename]" },
{ "execfile", do_exec_file, "" },
{ "checkpoint", do_checkpoint, "[delay [period]]" },
{ "addsymbol", do_addsymbol, "<address> <symbol>" },