aboutsummaryrefslogtreecommitdiff
path: root/fesvr/htif.cc
diff options
context:
space:
mode:
Diffstat (limited to 'fesvr/htif.cc')
-rw-r--r--fesvr/htif.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/fesvr/htif.cc b/fesvr/htif.cc
index 8b5eb8d..46f15d3 100644
--- a/fesvr/htif.cc
+++ b/fesvr/htif.cc
@@ -103,7 +103,7 @@ static void bad_address(const std::string& situation, reg_t addr)
exit(-1);
}
-std::map<std::string, uint64_t> htif_t::load_payload(const std::string& payload, reg_t* entry)
+std::map<std::string, uint64_t> htif_t::load_payload(const std::string& payload, reg_t* entry, reg_t load_offset)
{
std::string path;
if (access(payload.c_str(), F_OK) == 0)
@@ -143,7 +143,7 @@ std::map<std::string, uint64_t> htif_t::load_payload(const std::string& payload,
} preload_aware_memif(this);
try {
- return load_elf(path.c_str(), &preload_aware_memif, entry, expected_xlen);
+ return load_elf(path.c_str(), &preload_aware_memif, entry, load_offset, expected_xlen);
} catch (mem_trap_t& t) {
bad_address("loading payload " + payload, t.get_tval());
abort();
@@ -152,7 +152,7 @@ std::map<std::string, uint64_t> htif_t::load_payload(const std::string& payload,
void htif_t::load_program()
{
- std::map<std::string, uint64_t> symbols = load_payload(targs[0], &entry);
+ std::map<std::string, uint64_t> symbols = load_payload(targs[0], &entry, load_offset);
if (symbols.count("tohost") && symbols.count("fromhost")) {
tohost_addr = symbols["tohost"];
@@ -169,7 +169,7 @@ void htif_t::load_program()
for (auto payload : payloads) {
reg_t dummy_entry;
- load_payload(payload, &dummy_entry);
+ load_payload(payload, &dummy_entry, 0);
}
class nop_memif_t : public memif_t {