mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	loader: Various improvements for NSO/NRO loaders.
This commit is contained in:
		@@ -147,9 +147,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::Code);
 | 
			
		||||
    MapSegment(module_->data, VMAPermission::ReadWrite, MemoryState::Private);
 | 
			
		||||
    MapSegment(module_->code, VMAPermission::ReadWrite, MemoryState::Private);
 | 
			
		||||
    MapSegment(module_->rodata, VMAPermission::Read, MemoryState::Static);
 | 
			
		||||
    MapSegment(module_->data, VMAPermission::ReadWrite, MemoryState::Static);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VAddr Process::GetLinearHeapAreaAddress() const {
 | 
			
		||||
 
 | 
			
		||||
@@ -429,7 +429,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point,
 | 
			
		||||
        // Map the page to the current process' address space.
 | 
			
		||||
        // 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::Private);
 | 
			
		||||
                                  linheap_memory, offset, Memory::PAGE_SIZE, MemoryState::Static);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Mark the slot as used
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user