Two exports were missing. System modules are linked statically, so load and unload are reference counts over the known module table, exactly like the existing sceSysmoduleLoadModuleInternalWithArg and sceSysmoduleUnloadModule: - sceSysmoduleLoadModuleInternal(uint32_t) -> increments the module's load count, returns 0 - sceSysmoduleUnloadModuleInternal(uint32_t) -> decrements it, or 0x80A90003 when the module was not loaded Unknown or zero ids throw, like the sibling internal loader. Adds a CMakeLists.txt so the library can carry its guest test. Signatures follow the public OpenOrbis SDK headers. New test core/libs/tests/GuestSysmodule.cpp loads a module twice, unloads it twice and checks the not-loaded error on a third unload; it fails without the change (the symbols are undefined) and passes with it. |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| Export.cpp | ||
| ModuleTable.hpp | ||