mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Add 3GX plugin loader (#6172)
* Initial plugin loader support * More plugin loader progress * Organize code and more plugin features * Fix clang-format * Fix compilation and add android gui * Fix clang-format * Fix macos build * Fix copy-paste bug and clang-format * More merge fixes * Make suggestions * Move global variable to static member * Fix typo * Apply suggestions * Proper initialization order * Allocate plugin memory from SYSTEM instead of APPLICATION * Do not mark free pages as RWX * Fix plugins in old 3DS mode. * Implement KernelSetState and notif 0x203 * Apply changes * Remove unused variable * Fix dynarmic commit * Sublicense files with MIT License * Remove non-ascii characters from license
This commit is contained in:
		
							parent
							
								
									48ee112ceb
								
							
						
					
					
						commit
						016ce6c286
					
				
					 38 changed files with 1911 additions and 42 deletions
				
			
		|  | @ -4,18 +4,24 @@ | |||
| 
 | ||||
| #include <vector> | ||||
| #include <catch2/catch_test_macros.hpp> | ||||
| #include "core/core_timing.h" | ||||
| #include "core/hle/kernel/errors.h" | ||||
| #include "core/hle/kernel/memory.h" | ||||
| #include "core/hle/kernel/process.h" | ||||
| #include "core/hle/kernel/vm_manager.h" | ||||
| #include "core/memory.h" | ||||
| 
 | ||||
| TEST_CASE("Memory Basics", "[kernel][memory]") { | ||||
|     auto mem = std::make_shared<BufferMem>(Memory::CITRA_PAGE_SIZE); | ||||
|     MemoryRef block{mem}; | ||||
|     Core::Timing timing(1, 100); | ||||
|     Memory::MemorySystem memory; | ||||
|     Kernel::KernelSystem kernel( | ||||
|         memory, timing, [] {}, 0, 1, 0); | ||||
|     Kernel::Process process(kernel); | ||||
|     SECTION("mapping memory") { | ||||
|         // Because of the PageTable, Kernel::VMManager is too big to be created on the stack.
 | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory); | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory, process); | ||||
|         auto result = | ||||
|             manager->MapBackingMemory(Memory::HEAP_VADDR, block, static_cast<u32>(block.GetSize()), | ||||
|                                       Kernel::MemoryState::Private); | ||||
|  | @ -31,7 +37,7 @@ TEST_CASE("Memory Basics", "[kernel][memory]") { | |||
| 
 | ||||
|     SECTION("unmapping memory") { | ||||
|         // Because of the PageTable, Kernel::VMManager is too big to be created on the stack.
 | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory); | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory, process); | ||||
|         auto result = | ||||
|             manager->MapBackingMemory(Memory::HEAP_VADDR, block, static_cast<u32>(block.GetSize()), | ||||
|                                       Kernel::MemoryState::Private); | ||||
|  | @ -49,7 +55,7 @@ TEST_CASE("Memory Basics", "[kernel][memory]") { | |||
| 
 | ||||
|     SECTION("changing memory permissions") { | ||||
|         // Because of the PageTable, Kernel::VMManager is too big to be created on the stack.
 | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory); | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory, process); | ||||
|         auto result = | ||||
|             manager->MapBackingMemory(Memory::HEAP_VADDR, block, static_cast<u32>(block.GetSize()), | ||||
|                                       Kernel::MemoryState::Private); | ||||
|  | @ -69,7 +75,7 @@ TEST_CASE("Memory Basics", "[kernel][memory]") { | |||
| 
 | ||||
|     SECTION("changing memory state") { | ||||
|         // Because of the PageTable, Kernel::VMManager is too big to be created on the stack.
 | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory); | ||||
|         auto manager = std::make_unique<Kernel::VMManager>(memory, process); | ||||
|         auto result = | ||||
|             manager->MapBackingMemory(Memory::HEAP_VADDR, block, static_cast<u32>(block.GetSize()), | ||||
|                                       Kernel::MemoryState::Private); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue