m5.c (12161:af903f47f028) m5.c (12198:976c5b5db147)
1/*
2 * Copyright (c) 2011, 2017 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 126 unchanged lines hidden (view full) ---

135 len -= ret;
136 } while (len);
137 }
138
139 return offset;
140}
141
142void
1/*
2 * Copyright (c) 2011, 2017 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 126 unchanged lines hidden (view full) ---

135 len -= ret;
136 } while (len);
137 }
138
139 return offset;
140}
141
142void
143write_file(const char *filename)
143write_file(const char *filename, const char *host_filename)
144{
145 fprintf(stderr, "opening %s\n", filename);
146 int src_fid = open(filename, O_RDONLY);
147
148 if (src_fid < 0) {
149 fprintf(stderr, "error opening %s\n", filename);
150 return;
151 }
152
153 char buf[256*1024];
154 int offset = 0;
155 int len;
156 int bytes = 0;
157
158 memset(buf, 0, sizeof(buf));
159
160 while ((len = read(src_fid, buf, sizeof(buf))) > 0) {
144{
145 fprintf(stderr, "opening %s\n", filename);
146 int src_fid = open(filename, O_RDONLY);
147
148 if (src_fid < 0) {
149 fprintf(stderr, "error opening %s\n", filename);
150 return;
151 }
152
153 char buf[256*1024];
154 int offset = 0;
155 int len;
156 int bytes = 0;
157
158 memset(buf, 0, sizeof(buf));
159
160 while ((len = read(src_fid, buf, sizeof(buf))) > 0) {
161 bytes += m5_write_file(buf, len, offset, filename);
161 bytes += m5_write_file(buf, len, offset, host_filename);
162 offset += len;
163 }
164 fprintf(stderr, "written %d bytes\n", bytes);
165
166 close(src_fid);
167}
168
169void

--- 49 unchanged lines hidden (view full) ---

219 usage();
220
221 read_file(STDOUT_FILENO);
222}
223
224void
225do_write_file(int argc, char *argv[])
226{
162 offset += len;
163 }
164 fprintf(stderr, "written %d bytes\n", bytes);
165
166 close(src_fid);
167}
168
169void

--- 49 unchanged lines hidden (view full) ---

219 usage();
220
221 read_file(STDOUT_FILENO);
222}
223
224void
225do_write_file(int argc, char *argv[])
226{
227 if (argc != 1)
227 if (argc != 1 && argc != 2)
228 usage();
229
230 const char *filename = argv[0];
228 usage();
229
230 const char *filename = argv[0];
231 const char *host_filename = (argc == 2) ? argv[1] : argv[0];
231
232
232 write_file(filename);
233 write_file(filename, host_filename);
233}
234
235void
236do_exec_file(int argc, char *argv[])
237{
238 if (argc > 0)
239 usage();
240

--- 98 unchanged lines hidden (view full) ---

339
340struct MainFunc mainfuncs[] = {
341 { "exit", do_exit, "[delay]" },
342 { "fail", do_fail, "<code> [delay]" },
343 { "resetstats", do_reset_stats, "[delay [period]]" },
344 { "dumpstats", do_dump_stats, "[delay [period]]" },
345 { "dumpresetstats", do_dump_reset_stats, "[delay [period]]" },
346 { "readfile", do_read_file, "" },
234}
235
236void
237do_exec_file(int argc, char *argv[])
238{
239 if (argc > 0)
240 usage();
241

--- 98 unchanged lines hidden (view full) ---

340
341struct MainFunc mainfuncs[] = {
342 { "exit", do_exit, "[delay]" },
343 { "fail", do_fail, "<code> [delay]" },
344 { "resetstats", do_reset_stats, "[delay [period]]" },
345 { "dumpstats", do_dump_stats, "[delay [period]]" },
346 { "dumpresetstats", do_dump_reset_stats, "[delay [period]]" },
347 { "readfile", do_read_file, "" },
347 { "writefile", do_write_file, "" },
348 { "writefile", do_write_file, "<filename> [host filename]" },
348 { "execfile", do_exec_file, "" },
349 { "checkpoint", do_checkpoint, "[delay [period]]" },
350 { "addsymbol", do_addsymbol, "<address> <symbol>" },
351 { "loadsymbol", do_loadsymbol, "" },
352 { "initparam", do_initparam, "[key] // key must be shorter"
353 " than 16 chars" },
354 { "sw99param", do_sw99param, "" },
355#ifdef linux

--- 67 unchanged lines hidden ---
349 { "execfile", do_exec_file, "" },
350 { "checkpoint", do_checkpoint, "[delay [period]]" },
351 { "addsymbol", do_addsymbol, "<address> <symbol>" },
352 { "loadsymbol", do_loadsymbol, "" },
353 { "initparam", do_initparam, "[key] // key must be shorter"
354 " than 16 chars" },
355 { "sw99param", do_sw99param, "" },
356#ifdef linux

--- 67 unchanged lines hidden ---