mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	MemoryState: Add additional memory states and improve naming.
This commit is contained in:
		
							parent
							
								
									07ae1f972d
								
							
						
					
					
						commit
						8be7131033
					
				| @ -153,9 +153,9 @@ void Process::LoadModule(SharedPtr<CodeSet> module_, VAddr base_addr) { | ||||
|     }; | ||||
| 
 | ||||
|     // Map CodeSet segments
 | ||||
|     MapSegment(module_->code, VMAPermission::ReadExecute, MemoryState::Code); | ||||
|     MapSegment(module_->rodata, VMAPermission::Read, MemoryState::Static); | ||||
|     MapSegment(module_->data, VMAPermission::ReadWrite, MemoryState::Static); | ||||
|     MapSegment(module_->code, VMAPermission::ReadExecute, MemoryState::CodeStatic); | ||||
|     MapSegment(module_->rodata, VMAPermission::Read, MemoryState::CodeMutable); | ||||
|     MapSegment(module_->data, VMAPermission::ReadWrite, MemoryState::CodeMutable); | ||||
| } | ||||
| 
 | ||||
| VAddr Process::GetLinearHeapAreaAddress() const { | ||||
|  | ||||
| @ -468,7 +468,7 @@ static ResultCode QueryProcessMemory(MemoryInfo* memory_info, PageInfo* /*page_i | ||||
|         memory_info->base_address = 0; | ||||
|         memory_info->permission = static_cast<u32>(VMAPermission::None); | ||||
|         memory_info->size = 0; | ||||
|         memory_info->type = static_cast<u32>(MemoryState::Free); | ||||
|         memory_info->type = static_cast<u32>(MemoryState::Unmapped); | ||||
|     } else { | ||||
|         memory_info->base_address = vma->second.base; | ||||
|         memory_info->permission = static_cast<u32>(vma->second.permissions); | ||||
|  | ||||
| @ -314,7 +314,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point, | ||||
|         // TODO(Subv): Find the correct MemoryState for this region.
 | ||||
|         vm_manager.MapMemoryBlock(Memory::TLS_AREA_VADDR + available_page * Memory::PAGE_SIZE, | ||||
|                                   linheap_memory, offset, Memory::PAGE_SIZE, | ||||
|                                   MemoryState::ThreadLocalStorage); | ||||
|                                   MemoryState::ThreadLocal); | ||||
|     } | ||||
| 
 | ||||
|     // Mark the slot as used
 | ||||
|  | ||||
| @ -18,8 +18,26 @@ namespace Kernel { | ||||
| 
 | ||||
| static const char* GetMemoryStateName(MemoryState state) { | ||||
|     static const char* names[] = { | ||||
|         "Free",   "Reserved",   "IO",      "Static", "Code",      "Private", | ||||
|         "Shared", "Continuous", "Aliased", "Alias",  "AliasCode", "Locked", | ||||
|         "Unmapped", | ||||
|         "Io", | ||||
|         "Normal", | ||||
|         "CodeStatic", | ||||
|         "CodeMutable", | ||||
|         "Heap", | ||||
|         "Shared", | ||||
|         "Unknown1" | ||||
|         "ModuleCodeStatic", | ||||
|         "ModuleCodeMutable", | ||||
|         "IpcBuffer0", | ||||
|         "Mapped", | ||||
|         "ThreadLocal", | ||||
|         "TransferMemoryIsolated", | ||||
|         "TransferMemory", | ||||
|         "ProcessMemory", | ||||
|         "Unknown2" | ||||
|         "IpcBuffer1", | ||||
|         "IpcBuffer3", | ||||
|         "KernelStack", | ||||
|     }; | ||||
| 
 | ||||
|     return names[(int)state]; | ||||
| @ -142,7 +160,7 @@ VMManager::VMAIter VMManager::Unmap(VMAIter vma_handle) { | ||||
|     VirtualMemoryArea& vma = vma_handle->second; | ||||
|     vma.type = VMAType::Free; | ||||
|     vma.permissions = VMAPermission::None; | ||||
|     vma.meminfo_state = MemoryState::Free; | ||||
|     vma.meminfo_state = MemoryState::Unmapped; | ||||
| 
 | ||||
|     vma.backing_block = nullptr; | ||||
|     vma.offset = 0; | ||||
|  | ||||
| @ -41,15 +41,24 @@ enum class VMAPermission : u8 { | ||||
| 
 | ||||
| /// Set of values returned in MemoryInfo.state by svcQueryMemory.
 | ||||
| enum class MemoryState : u32 { | ||||
|     Free = 0, | ||||
|     IO = 1, | ||||
|     Normal = 2, | ||||
|     Code = 3, | ||||
|     Static = 4, | ||||
|     Heap = 5, | ||||
|     Shared = 6, | ||||
|     Mapped = 6, | ||||
|     ThreadLocalStorage = 12, | ||||
|     Unmapped = 0x0, | ||||
|     Io = 0x1, | ||||
|     Normal = 0x2, | ||||
|     CodeStatic = 0x3, | ||||
|     CodeMutable = 0x4, | ||||
|     Heap = 0x5, | ||||
|     Shared = 0x6, | ||||
|     ModuleCodeStatic = 0x8, | ||||
|     ModuleCodeMutable = 0x9, | ||||
|     IpcBuffer0 = 0xA, | ||||
|     Mapped = 0xB, | ||||
|     ThreadLocal = 0xC, | ||||
|     TransferMemoryIsolated = 0xD, | ||||
|     TransferMemory = 0xE, | ||||
|     ProcessMemory = 0xF, | ||||
|     IpcBuffer1 = 0x11, | ||||
|     IpcBuffer3 = 0x12, | ||||
|     KernelStack = 0x13, | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
| @ -66,7 +75,7 @@ struct VirtualMemoryArea { | ||||
|     VMAType type = VMAType::Free; | ||||
|     VMAPermission permissions = VMAPermission::None; | ||||
|     /// Tag returned by svcQueryMemory. Not otherwise used.
 | ||||
|     MemoryState meminfo_state = MemoryState::Free; | ||||
|     MemoryState meminfo_state = MemoryState::Unmapped; | ||||
| 
 | ||||
|     // Settings for type = AllocatedMemoryBlock
 | ||||
|     /// Memory block backing this VMA.
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei