forked from Bananymous/banan-os
				
			
			update main #1
			
				
			
		
		
		
	| 
						 | 
					@ -226,7 +226,8 @@ namespace LibELF
 | 
				
			||||||
					if (paddr == 0)
 | 
										if (paddr == 0)
 | 
				
			||||||
						return BAN::Error::from_errno(ENOMEM);
 | 
											return BAN::Error::from_errno(ENOMEM);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					m_page_table.map_page_at(paddr, vaddr, flags);
 | 
										// Temporarily map page as RW so kernel can write to it
 | 
				
			||||||
 | 
										m_page_table.map_page_at(paddr, vaddr, PageTable::Flags::ReadWrite | PageTable::Flags::Present);
 | 
				
			||||||
					m_physical_page_count++;
 | 
										m_physical_page_count++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					memset((void*)vaddr, 0x00, PAGE_SIZE);
 | 
										memset((void*)vaddr, 0x00, PAGE_SIZE);
 | 
				
			||||||
| 
						 | 
					@ -245,6 +246,9 @@ namespace LibELF
 | 
				
			||||||
						TRY(m_inode->read(program_header.p_offset + file_offset, { (uint8_t*)vaddr + vaddr_offset, bytes }));
 | 
											TRY(m_inode->read(program_header.p_offset + file_offset, { (uint8_t*)vaddr + vaddr_offset, bytes }));
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										// Map page with the correct flags
 | 
				
			||||||
 | 
										m_page_table.map_page_at(paddr, vaddr, flags);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					return {};
 | 
										return {};
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				default:
 | 
									default:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue