43 #ifndef __BASE_LOADER_ELF_OBJECT_HH__ 44 #define __BASE_LOADER_ELF_OBJECT_HH__ 65 void determineOpSys();
66 void handleLoadableSegment(GElf_Phdr phdr,
int seg_num);
70 Addr _programHeaderTable = 0;
71 uint16_t _programHeaderSize = 0;
72 uint16_t _programHeaderCount = 0;
98 bool sectionExists(std::string sec);
119 std::string getInterpPath(
const GElf_Phdr &phdr)
const;
124 void updateBias(
Addr bias_addr)
override;
126 bool hasTLS()
override {
return sectionExists(
".tbss"); }
142 #endif // __BASE_LOADER_ELF_OBJECT_HH__
MemoryImage buildImage() const override
Addr bias() const override
Addr programHeaderTable()
Addr mapSize() const override
void setInterpDir(const std::string &dirname)
This is the interface for setting up a base path for the elf interpreter.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint16_t programHeaderSize()
uint16_t programHeaderCount()
ObjectFile * getInterpreter() const override
std::set< std::string > sectionNames
std::shared_ptr< ImageFileData > ImageFileDataPtr
bool relocatable() const override