Commit Graph

52 Commits

Author SHA1 Message Date
Maschell
629dc0393f Make PluginLinkInformation not optional anymore in PluginContainer, add stub link data if missing 2024-11-28 20:45:46 +01:00
Maschell
dc67b11b21 Only link allowed plugins for testing 2024-11-28 20:42:04 +01:00
Maschell
ab99e6dcf7 Rename PluginInformation to PluginLinkInformation and make it optional in PluginContainer 2024-11-28 20:40:00 +01:00
Maschell
1524f0a6a9 Update plugin (un)loading logic to keep plugins loaded if possible 2024-11-28 20:26:17 +01:00
Maschell
447e1eb218 Code cleanup 2024-11-28 19:44:14 +01:00
Maschell
43a18b56d7 Small fixes to the .wps loading, return nullptr instead of OSFatal, add asserts instead of OSFatal 2024-05-08 18:08:03 +02:00
Maschell
6acd8fcfdf Fix error notiifcation when plugin loading fails 2024-04-26 14:51:23 +02:00
Maschell
7d07f6525b Remove unnecessary std::unique_ptr usages 2024-04-25 16:19:26 +02:00
Maschell
921b5ce157 Implement new ConfigAPI and new Config Menu 2024-04-25 16:19:26 +02:00
Maschell
ed13894dc3 Implementation of new StorageAPI 2024-04-25 16:19:26 +02:00
Maschell
cc5acd0980 - use const auto& where possible
- avoid using const std::unique_ptr& and const std::shared_ptr&
- avoid wrapping results in std::optional
- prefer std::string_view over const std::string&
- update FSUtils::LoadFileToMem to write into std::vector<uint8_t>
- use std::span when possible
- Avoid unnessecary copies in PluginDataFactory
- allocate plugins as HeapMemoryFixedSize which bascially is a std::unique_ptr with fixed size
2024-04-25 16:19:26 +02:00
Maschell
1e7c77b39f Improve error message when parsing a plugin failed 2023-08-16 11:03:28 +02:00
Maschell
07de996bf9 Add support for notifications on error 2023-08-16 11:03:28 +02:00
Maschell
64667d6169 Fix compiling with latest wut, Update Dockerfile 2023-07-18 12:48:54 +02:00
Maschell
2071c6cbf8 Update to use the latest libfunctionpatcher 2023-01-07 13:44:05 +01:00
Maschell
0e56538cb1 Keep track of acquired RPLs and release them on exit 2022-10-05 21:01:41 +02:00
Maschell
2882635f6f Set a custom OSDynLoad Allocator when processing relocations 2022-10-03 22:04:26 +02:00
Maschell
0a254e59f4 Fix resetting the trampoline data to avoid a crash when re-loading plugins 50+ times 2022-10-03 22:04:26 +02:00
Maschell
cda9c3e055 Rewrite the plugin backend, use smart pointers is possible, don't persist in structs and simplify code 2022-05-14 15:43:30 +02:00
Maschell
48eb915a70 Use DEBUG_FUNCTION_LINE_ERR on error. 2022-04-23 09:11:36 +02:00
Maschell
a916a6e42b Stop calling deinit when unloading plugins 2022-02-26 16:43:08 +01:00
Maschell
2547c7edca Format the code via clang-format 2022-02-04 16:35:53 +01:00
Maschell
614f58ea8e Formatting, fix spelling, clean up 2022-01-27 12:47:33 +01:00
Maschell
79eb5758b7 Use std::shared_ptr 2021-12-15 17:09:30 +01:00
Maschell
aa90e2478b Formatting and cleanup 2021-09-25 14:26:18 +02:00
Maschell
13ed348f43 Add support for the config and storage API. Bump version to 0.6 2021-09-24 20:37:54 +02:00
Maschell
5247775b03 Support for WUPS 0.5, compile with latest wut version 2021-04-17 14:05:39 +02:00
Maschell
b48a53b63d Try to allocate memory for the plugins via the memory mapping module 2021-04-01 00:37:22 +02:00
Maschell
f11649bc36 Support WUPS 0.4, remove some unused code. 2021-03-16 17:55:32 +01:00
Maschell
189af02743 Reduce logging 2021-02-19 19:41:04 +01:00
Maschell
f0b78caec3 Updating logging messages, call DCFlushRange on the actual heap instead of a hardcoded address, general clean up. 2021-01-10 13:17:47 +01:00
Maschell
f7b4b568d2 Remove \n in log messages 2020-12-28 14:40:53 +01:00
Maschell
96cfe71230 Add OSDynLoad_AddNotifyCallback to patch function if a new RPL was loaded 2020-12-26 15:59:06 +01:00
Maschell
e9bd4651ca Clean up and formatting 2020-12-26 14:17:50 +01:00
Maschell
ce73ac48e0 Use the function patcher module for the plugin function patches 2020-06-13 16:57:53 +02:00
Maschell
dfb8828829 Use libfunctionpatcher for non-plugin function patches 2020-06-12 20:51:21 +02:00
Maschell
42866ffbac Don't clear the .bss section anymore, call the wut init functions only once, except the devop one 2020-06-03 19:33:09 +02:00
Maschell
1917ff9fb4 Adjust the setter the PluginContainer to use const values 2020-06-03 18:30:05 +02:00
Maschell
592ecf8eed Fix setting the trampolineID 2020-06-03 18:23:23 +02:00
Maschell
cfc2d4197e Use alloc/free from memorymapping module if possible 2020-06-03 18:22:44 +02:00
Maschell
48683e167e Add flush after patching the functions 2020-05-29 19:27:55 +02:00
Maschell
7a7a1f7a63 Organize imports and format code 2020-05-28 20:51:31 +02:00
Maschell
b63723eb72 Add option to delete or not delete the actual plugin data when unloading plugins 2020-05-17 21:06:11 +02:00
Maschell
49fde27123 Make sure to restore patches before unloading plugins 2020-05-17 21:06:00 +02:00
Maschell
da5b26b583 Add callDeinitHooks and RestorePatches to the PlugingManagement 2020-05-17 21:04:16 +02:00
Maschell
7247ad3093 Free trampolin data when unloading plugins 2020-05-17 20:41:11 +02:00
Maschell
3fb7f80050 Move loadPlugins function to PluginManagement 2020-05-03 14:20:00 +02:00
Maschell
0a4652c10a Add a function to unload all plugins from memory in the PluginManagement 2020-05-03 14:16:11 +02:00
Maschell
4bf4a0eeea Formatting 2020-05-03 12:25:38 +02:00
Maschell
e556490d27 Call the CRT hooks at each application start, not just once. 2020-05-03 11:34:43 +02:00