Browse Source
Merge pull request #1273 from riscv-software-src/fix-targargs
Support passing in htif target-arguments through plusargs
pull/1275/head
Andrew Waterman
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
13 additions and
6 deletions
-
fesvr/htif.cc
-
fesvr/htif.h
|
|
|
@ -327,7 +327,9 @@ void htif_t::parse_arguments(int argc, char ** argv) |
|
|
|
break; |
|
|
|
case HTIF_LONG_OPTIONS_OPTIND + 5: |
|
|
|
line_size = atoi(optarg); |
|
|
|
|
|
|
|
break; |
|
|
|
case HTIF_LONG_OPTIONS_OPTIND + 6: |
|
|
|
targs.push_back(optarg); |
|
|
|
break; |
|
|
|
case '?': |
|
|
|
if (!opterr) |
|
|
|
@ -363,10 +365,14 @@ void htif_t::parse_arguments(int argc, char ** argv) |
|
|
|
c = HTIF_LONG_OPTIONS_OPTIND + 4; |
|
|
|
optarg = optarg + 9; |
|
|
|
} |
|
|
|
else if(arg.find("+signature-granularity=")==0){ |
|
|
|
c = HTIF_LONG_OPTIONS_OPTIND + 5; |
|
|
|
optarg = optarg + 23; |
|
|
|
else if (arg.find("+signature-granularity=") == 0) { |
|
|
|
c = HTIF_LONG_OPTIONS_OPTIND + 5; |
|
|
|
optarg = optarg + 23; |
|
|
|
} |
|
|
|
else if (arg.find("+target-argument=") == 0) { |
|
|
|
c = HTIF_LONG_OPTIONS_OPTIND + 6; |
|
|
|
optarg = optarg + 17; |
|
|
|
} |
|
|
|
else if (arg.find("+permissive-off") == 0) { |
|
|
|
if (opterr) |
|
|
|
throw std::invalid_argument("Found +permissive-off when not parsing permissively"); |
|
|
|
|
|
|
|
@ -63,7 +63,7 @@ class htif_t : public chunked_memif_t |
|
|
|
virtual void idle() {} |
|
|
|
|
|
|
|
const std::vector<std::string>& host_args() { return hargs; } |
|
|
|
std::vector<std::string>& target_args() { return targs; } |
|
|
|
const std::vector<std::string>& target_args() { return targs; } |
|
|
|
|
|
|
|
reg_t get_entry_point() { return entry; } |
|
|
|
|
|
|
|
@ -144,7 +144,8 @@ TARGET (RISC-V BINARY) OPTIONS\n\ |
|
|
|
{"signature", required_argument, 0, HTIF_LONG_OPTIONS_OPTIND + 2 }, \ |
|
|
|
{"chroot", required_argument, 0, HTIF_LONG_OPTIONS_OPTIND + 3 }, \ |
|
|
|
{"payload", required_argument, 0, HTIF_LONG_OPTIONS_OPTIND + 4 }, \ |
|
|
|
{"signature-granularity", optional_argument, 0, HTIF_LONG_OPTIONS_OPTIND + 5 }, \ |
|
|
|
{"signature-granularity", required_argument, 0, HTIF_LONG_OPTIONS_OPTIND + 5 }, \ |
|
|
|
{"target-argument", required_argument, 0, HTIF_LONG_OPTIONS_OPTIND + 6 }, \ |
|
|
|
{0, 0, 0, 0} |
|
|
|
|
|
|
|
#endif // __HTIF_H
|
|
|
|
|