aboutsummaryrefslogtreecommitdiff
path: root/backends/plugins
AgeCommit message (Collapse)Author
2010-11-05PLUGINS: Simplify ELF plugin providers & DLObject subclassesMax Horn
* Remove DLObject virtual methods allocSegment and freeSegment. As long as all DLObject implementations use memalign + free to allocate/release segments, there is no point in wrapping those. This enables further simplifications. * Add TemplatedELFPlugin template class. Use this instead of explicit ELFPlugin subclasses. * Rename DLObject::discard_symtab to discardSymtab svn-id: r54082
2010-11-05PLUGINS: Add EM_SH to elf32.h (e_machine type used by DC backend)Max Horn
svn-id: r54081
2010-11-04PSP: cleaning up some stuff from plugin mergeYotam Barnoy
svn-id: r54060
2010-11-04COMMON: Undo changes to common/ptr.h, remove Common::ScopedPtrCMax Horn
The deletePointer() method approach cannot work, as it is called by the destructor of the base class. A possible correct solution would be to enhance ScopedPtr with a "deleter" object like SharedPtr. But this seems overkill as long as we need it in only one place. svn-id: r54057
2010-11-03Merge from gsoc2010-pluginsYotam Barnoy
This merge was extremely difficult to carry out. It wasn't entirely SVN's fault -- there were several merges to the branch that were done by hand. Please check for any issues and regressions. Also note that the DS makefile was not copied over since the "one at a time" plugin mode currently has too much fragmentation ie. it doesn't work. svn-id: r54051
2010-11-03Dummy file creation through SVN to allow merging gsoc plugins via mercurialYotam Barnoy
svn-id: r54046
2010-10-31Updated with latest from trunkYotam Barnoy
svn-id: r53976
2010-10-30SDL: Fix SDL plugin provider code (used e.g. by Dingux port)Max Horn
svn-id: r53968
2010-09-16PLUGINS: fixed issue with R_MIPS_32 relocationsYotam Barnoy
Caused crash in some games. The problem was referring to the right segment. R_MIPS_32 relocations can be found in the Shorts segment, but still need to refer to the main segment if the symbol is found there. svn-id: r52750
2010-09-16PLUGINS: Fix function arguments in MIPS loaderYotam Barnoy
Derived virtual function wasn't overwriting base function. svn-id: r52749
2010-09-15PLUGINS: Additional plugin check for the ELF loader.Andre Heider
The ELF loader does not have access to the symbols of the main executable, it just relocates symbols to it via fixed offsets. We need to make sure that loaded plugins are from the same link process to prevent crashes. An embedded build date is used for that. svn-id: r52730
2010-09-15PLUGINS: Cleanup.Andre Heider
- Unify ELF loader handling in configure - Rename ELF_LOADER_TARGET to USE_ELF_LOADER svn-id: r52728
2010-09-06PLUGINS: Only resolve __dso_handle if loading was successful.Andre Heider
svn-id: r52612
2010-09-06PLUGINS: Formatting.Andre Heider
svn-id: r52611
2010-09-06PLUGINS: Use the C++ ABI to call dtors when unloading a plugin.Andre Heider
Avoid linking all plugins against libstdc++ to free up some memory (about ~40kb on Wii per plugin). Enable it on GameCube, Wii, DS and PSP (PS2 doesn't have __cxa_atexit support in its libc). svn-id: r52607
2010-09-06PLUGINS: used variation of ScopedPtr to clean up load() functionYotam Barnoy
svn-id: r52592
2010-09-06PLUGINS: fixed MIPS plugin loaderYotam Barnoy
Adjusted to new VMA handling and fixed a few errors which caused crashes. Also removed unneeded expansion of alignment value. svn-id: r52589
2010-09-06PLUGINS: added missing call in destructor which caused crashingYotam Barnoy
svn-id: r52588
2010-09-05PLUGINS: Added _segmentVMA to the MIPS loader.Andre Heider
Also added 2 TODOs for all loaders not respection that offset. svn-id: r52577
2010-09-05PLUGINS: Remove spurious extra allocation.Andre Heider
Elf32_Phdr.p_align is to align the memory location of the loaded segment, not to extend its size. The size of the scratch area (like .bss and .sbss) is p_memsz-p_filesz, which has to be set to zero by the loader. svn-id: r52576
2010-09-05PLUGINS: Plug some memleaks.Andre Heider
svn-id: r52575
2010-09-05PLUGINS: Move doxygen to the base class header.Andre Heider
No point in documenting it on every derived class. svn-id: r52574
2010-09-05PLUGINS: Add missing variable initialization.Andre Heider
svn-id: r52573
2010-09-05PLUGINS: Formatting.Andre Heider
Misformatted casts in an earier commit, oops. svn-id: r52572
2010-09-05PLUGINS: Set svn:keywords property on all new files.Andre Heider
svn-id: r52566
2010-09-05PLUGINS: Make the file stream a member of DLObject.Andre Heider
No point in passing it to functions all over the place. Release the stream when it's not required anymore. svn-id: r52558
2010-09-05PLUGINS: Type cleanup.Andre Heider
Use our types, get rid of some casts. svn-id: r52557
2010-09-05PLUGINS: Move platform specific code out of the generic ELF loader.Andre Heider
Instead overwrite pure virtual functions in a backend specific class. svn-id: r52556
2010-09-05PLUGINS: Move all ELF loader related files to its own directory.Andre Heider
svn-id: r52555
2010-09-05PLUGINS: Plugin support for the GameCube/Wii backend.Andre Heider
svn-id: r52553
2010-09-05PLUGINS: Formatting.Andre Heider
svn-id: r52552
2010-09-05PLUGINS: Respect the VMA when relocating.Andre Heider
Plugins do not have to be linked at 0x0. Some platforms have limited relocation jump offsets, which makes 0x0 unusable. svn-id: r52551
2010-09-05PLUGINS: Properly check the ELF header.Andre Heider
The ELFMAG is only 4 bytes, not 6. Properly check for endianess. svn-id: r52550
2010-09-05PLUGINS: The VMA doesn't get added to any PHDR.Andre Heider
svn-id: r52549
2010-09-05PLUGINS: Fix warnings.Andre Heider
svn-id: r52548
2010-09-05PLUGINS: Cleanup includes and debug output.Andre Heider
Use the common debug functions instead of spamming #defines. svn-id: r52547
2010-09-05PLUGINS: Flush only memory ranges, not everythingAndre Heider
svn-id: r52546
2010-08-29PLUGINS: Fix warnings and unnecessary casts.Andre Heider
svn-id: r52439
2010-08-19PSP: made PSP compile with plugins.Yotam Barnoy
Also removed criticalSection calls from elf-loader.cpp, since now streams are used so the criticalSections are automatic. svn-id: r52206
2010-08-19PLUGINS: added virtual destructor to DLObjectYotam Barnoy
This could be really important. Maybe. svn-id: r52205
2010-08-16Added doxygen comments for a few different plugin-related classesTony Puccinelli
svn-id: r52124
2010-08-16added a todo to plugins.cpp and a comment to elf32.h; Collapsed plugin ↵Tony Puccinelli
providers for a few ports into their .h files, removing the corresponding .cpp files svn-id: r52112
2010-08-13refactored NEW_PLUGIN_DESIGN_FIRST_REFINEMENT define into ONE_PLUGIN_AT_A_TIMETony Puccinelli
svn-id: r52058
2010-08-13added appropriate ifdefs throughout the plugins directoryTony Puccinelli
svn-id: r52053
2010-08-12modified DS makefile to use new plugin design where only one plugin is ↵Tony Puccinelli
loaded at a time and tested successfully on the DS. Added code to prevent a crash in the case where there are no engine plugins present. Removed code for R_ARM_TARGET1 in arm-loader, as it is no longer used and was never used successfully svn-id: r52052
2010-08-10merged trunk into branch, reverted Cruise Singleton changesTony Puccinelli
svn-id: r51961
2010-08-07got rid of rest of leftover stuff from GP2X-WIZ elf-loader attemptTony Puccinelli
svn-id: r51846
2010-08-07refined constructors, removed destructors, got rid of unneccessary method ↵Tony Puccinelli
duplication in DLObject and its subtypes svn-id: r51845
2010-08-07added necessary files I forgot to commit yesterday (whoops...) for mips and ↵Tony Puccinelli
arm loaders svn-id: r51843
2010-08-07took out hacky 'ifdef MIPS_TARGET' statements in DLObject's methods and ↵Tony Puccinelli
instead overrode those methods in MIPSDLObject svn-id: r51827