diff options
Diffstat (limited to 'backends/plugins/elf/elf-loader.h')
-rw-r--r-- | backends/plugins/elf/elf-loader.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/backends/plugins/elf/elf-loader.h b/backends/plugins/elf/elf-loader.h index 9b80a0236f..ae226fc2b6 100644 --- a/backends/plugins/elf/elf-loader.h +++ b/backends/plugins/elf/elf-loader.h @@ -44,6 +44,8 @@ */ class DLObject { protected: + Common::SeekableReadStream* _file; + byte *_segment; Elf32_Sym *_symtab; char *_strtab; @@ -57,19 +59,19 @@ protected: void *_dtors_start, *_dtors_end; virtual void unload(); - bool load(Common::SeekableReadStream* DLFile); - - bool readElfHeader(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr); - bool readProgramHeaders(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr, Elf32_Phdr *phdr, Elf32_Half num); - virtual bool loadSegment(Common::SeekableReadStream* DLFile, Elf32_Phdr *phdr); - Elf32_Shdr *loadSectionHeaders(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr); - int loadSymbolTable(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr, Elf32_Shdr *shdr); - bool loadStringTable(Common::SeekableReadStream* DLFile, Elf32_Shdr *shdr); + bool load(); + + bool readElfHeader(Elf32_Ehdr *ehdr); + bool readProgramHeaders(Elf32_Ehdr *ehdr, Elf32_Phdr *phdr, Elf32_Half num); + virtual bool loadSegment(Elf32_Phdr *phdr); + Elf32_Shdr *loadSectionHeaders(Elf32_Ehdr *ehdr); + int loadSymbolTable(Elf32_Ehdr *ehdr, Elf32_Shdr *shdr); + bool loadStringTable(Elf32_Shdr *shdr); virtual void relocateSymbols(ptrdiff_t offset); // architecture specific - virtual bool relocate(Common::SeekableReadStream* DLFile, Elf32_Off offset, Elf32_Word size, byte *relSegment) = 0; - virtual bool relocateRels(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr, Elf32_Shdr *shdr) = 0; + virtual bool relocate(Elf32_Off offset, Elf32_Word size, byte *relSegment) = 0; + virtual bool relocateRels(Elf32_Ehdr *ehdr, Elf32_Shdr *shdr) = 0; // platform specific virtual void *allocSegment(size_t boundary, size_t size) const = 0; |