aboutsummaryrefslogtreecommitdiff
path: root/backends/plugins/elf-loader.h
diff options
context:
space:
mode:
authorTony Puccinelli2010-08-07 06:15:57 +0000
committerTony Puccinelli2010-08-07 06:15:57 +0000
commitd6adeb9ccf3e361d206dbf09b5279cea43459ff2 (patch)
tree47fed693c4328f8009a8c74355f0fa0985ddec07 /backends/plugins/elf-loader.h
parent0712d418708540c2c6dbba4c4912eb94302c9125 (diff)
downloadscummvm-rg350-d6adeb9ccf3e361d206dbf09b5279cea43459ff2.tar.gz
scummvm-rg350-d6adeb9ccf3e361d206dbf09b5279cea43459ff2.tar.bz2
scummvm-rg350-d6adeb9ccf3e361d206dbf09b5279cea43459ff2.zip
took out hacky 'ifdef MIPS_TARGET' statements in DLObject's methods and instead overrode those methods in MIPSDLObject
svn-id: r51827
Diffstat (limited to 'backends/plugins/elf-loader.h')
-rw-r--r--backends/plugins/elf-loader.h15
1 files changed, 3 insertions, 12 deletions
diff --git a/backends/plugins/elf-loader.h b/backends/plugins/elf-loader.h
index 7abe012003..56a9fa3767 100644
--- a/backends/plugins/elf-loader.h
+++ b/backends/plugins/elf-loader.h
@@ -30,10 +30,6 @@
#include "common/stream.h"
#include "backends/plugins/dynamic-plugin.h"
-#if defined(MIPS_TARGET)
-#include "shorts-segment-manager.h"
-#endif
-
class DLObject {
protected:
void *_segment, *_symtab;
@@ -44,23 +40,18 @@ protected:
int _segmentSize;
-#ifdef MIPS_TARGET
- ShortSegmentManager::Segment *_shortsSegment; // For assigning shorts ranges
- unsigned int _gpVal; // Value of Global Pointer
-#endif
-
//void seterror(const char *fmt, ...);
- void unload();
+ virtual void unload();
virtual bool relocate(Common::SeekableReadStream* DLFile, unsigned long offset, unsigned long size, void *relSegment) = 0;
bool load(Common::SeekableReadStream* DLFile);
bool readElfHeader(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr);
bool readProgramHeaders(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr, Elf32_Phdr *phdr, int num);
- bool loadSegment(Common::SeekableReadStream* DLFile, Elf32_Phdr *phdr);
+ 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);
- void relocateSymbols(Elf32_Addr offset);
+ virtual void relocateSymbols(Elf32_Addr offset);
virtual bool relocateRels(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr, Elf32_Shdr *shdr) = 0;
public: