diff options
Diffstat (limited to 'src/base/loader/object_file.hh')
-rw-r--r-- | src/base/loader/object_file.hh | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/base/loader/object_file.hh b/src/base/loader/object_file.hh index fb30118e0..b2628a0d0 100644 --- a/src/base/loader/object_file.hh +++ b/src/base/loader/object_file.hh @@ -82,15 +82,19 @@ class ObjectFile public: virtual ~ObjectFile(); - virtual bool loadSections(PortProxy& memProxy, Addr addrMask = - std::numeric_limits<Addr>::max(), - Addr offset = 0); - virtual bool loadGlobalSymbols(SymbolTable *symtab, Addr addrMask = - std::numeric_limits<Addr>::max()) = 0; - virtual bool loadLocalSymbols(SymbolTable *symtab, Addr addrMask = - std::numeric_limits<Addr>::max()) = 0; - virtual bool loadWeakSymbols(SymbolTable *symtab, Addr addrMask = - std::numeric_limits<Addr>::max()) + static const Addr maxAddr = std::numeric_limits<Addr>::max(); + + virtual bool loadSections(PortProxy& mem_proxy, + Addr mask = maxAddr, Addr offset = 0); + + virtual bool loadAllSymbols(SymbolTable *symtab, Addr base = 0, + Addr offset = 0, Addr mask = maxAddr) = 0; + virtual bool loadGlobalSymbols(SymbolTable *symtab, Addr base = 0, + Addr offset = 0, Addr mask = maxAddr) = 0; + virtual bool loadLocalSymbols(SymbolTable *symtab, Addr base = 0, + Addr offset = 0, Addr mask = maxAddr) = 0; + virtual bool loadWeakSymbols(SymbolTable *symtab, Addr base = 0, + Addr offset = 0, Addr mask = maxAddr) { return false; } virtual ObjectFile *getInterpreter() const { return nullptr; } @@ -121,7 +125,7 @@ class ObjectFile Section data; Section bss; - bool loadSection(Section *sec, PortProxy& memProxy, Addr addrMask, + bool loadSection(Section *sec, PortProxy& mem_proxy, Addr mask, Addr offset = 0); void setGlobalPointer(Addr global_ptr) { globalPtr = global_ptr; } |