summaryrefslogtreecommitdiff
path: root/src/base/loader/object_file.hh
diff options
context:
space:
mode:
authorBrandon Potter <brandon.potter@amd.com>2016-03-17 10:31:03 -0700
committerBrandon Potter <brandon.potter@amd.com>2016-03-17 10:31:03 -0700
commit9b4249410ec18cac9df2c7e9c0a4a6ce5459233d (patch)
treec3260ef4f23b9eca7d835ab1e0dfc8ce1173b17c /src/base/loader/object_file.hh
parent4fc69db8f89049a881a5f4aa68545840818b124c (diff)
downloadgem5-9b4249410ec18cac9df2c7e9c0a4a6ce5459233d.tar.xz
base: support dynamic loading of Linux ELF objects in SE mode
Diffstat (limited to 'src/base/loader/object_file.hh')
-rw-r--r--src/base/loader/object_file.hh10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/base/loader/object_file.hh b/src/base/loader/object_file.hh
index e5961add2..26750038f 100644
--- a/src/base/loader/object_file.hh
+++ b/src/base/loader/object_file.hh
@@ -35,6 +35,7 @@
#include <limits>
#include <string>
+#include "base/misc.hh"
#include "base/types.hh"
class PortProxy;
@@ -94,7 +95,14 @@ class ObjectFile
std::numeric_limits<Addr>::max())
{ return false; }
- virtual bool isDynamic() { return false; }
+ virtual ObjectFile *getInterpreter() const { return nullptr; }
+ virtual bool relocatable() const { return false; }
+ virtual Addr mapSize() const
+ { panic("mapSize() should only be called on relocatable objects\n"); }
+ virtual void updateBias(Addr bias_addr)
+ { panic("updateBias() should only be called on relocatable objects\n"); }
+ virtual Addr bias() const { return 0; }
+
virtual bool hasTLS() { return false; }
Arch getArch() const { return arch; }