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 --- |