aboutsummaryrefslogtreecommitdiff
path: root/backends/plugins
AgeCommit message (Collapse)Author
2010-12-30PLUGINS: rename ONE_PLUGIN_AT_A_TIME define to UNCACHED_PLUGINSYotam Barnoy
ONE_PLUGIN_AT_A_TIME is too long. svn-id: r55064
2010-12-29PLUGINS: single plugin model now saves plugin filename to config fileYotam Barnoy
After searching for the right plugin once, the filename will be saved to the config file under the domain 'plugin_files'. The key is the gameid and the value is the plugin file. The backup mechanism is searching plugin by plugin. svn-id: r55061
2010-12-26PLUGINS: fixed resource leak that caused PSP to crashYotam Barnoy
The leaky file handles didn't show up when debugging using the shell since that uses the Windows file handles, of which there are many more. svn-id: r55048
2010-12-22PLUGINS: replace all size_t's with uint32's and add #include <malloc.h> to ↵Yotam Barnoy
memory manager uint32 is all we need since we only handle ELF32 anyway. svn-id: r55012
2010-12-22PLUGINS: Only enable ELFMemoryManager when dynamic plugins and the ELF ↵Johannes Schickel
loader is enabled. This should fix compilation on desktop systems, where for example memalign is not present. svn-id: r55011
2010-12-22PLUGINS: Fix ELFMemoryManager::pluginAllocate signature.Johannes Schickel
svn-id: r55010
2010-12-22PLUGINS: add ELF memory manager to solve fragmentationYotam Barnoy
Following lordhoto's suggestion, I implemented a simple allocator that grabs the size of the biggest available plugin in memory. This is an elegant solution to the fragmentation problem, with the caveat that memory is wasted. As such, it's not suited for the DS, so I added a #define to disable it there. svn-id: r55009
2010-11-29BACKENDS: Fix SVN keyword usage.Johannes Schickel
svn-id: r54584
2010-11-29BACKENDS: Include scummsys.h at top of all .cpp files, *before* any #ifdefsMax Horn
svn-id: r54573
2010-11-29SDL: Move #include <SDL.h> into a special wrapper fileMax Horn
svn-id: r54572
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