forked from Bananymous/banan-os
				
			Kernel: Add pointer validation API to page table
This commit is contained in:
		
							parent
							
								
									3a9c6fc51a
								
							
						
					
					
						commit
						bc1087f5a7
					
				|  | @ -110,6 +110,13 @@ namespace Kernel | |||
| 		return *s_current; | ||||
| 	} | ||||
| 
 | ||||
| 	bool PageTable::is_valid_pointer(uintptr_t pointer) | ||||
| 	{ | ||||
| 		if (!is_canonical(pointer)) | ||||
| 			return false; | ||||
| 		return true; | ||||
| 	} | ||||
| 
 | ||||
| 	static uint64_t* allocate_zeroed_page_aligned_page() | ||||
| 	{ | ||||
| 		void* page = kmalloc(PAGE_SIZE, PAGE_SIZE, true); | ||||
|  |  | |||
|  | @ -29,13 +29,15 @@ namespace Kernel | |||
| 		static PageTable& kernel(); | ||||
| 		static PageTable& current(); | ||||
| 
 | ||||
| 		static bool is_valid_pointer(uintptr_t); | ||||
| 
 | ||||
| 		static BAN::ErrorOr<PageTable*> create_userspace(); | ||||
| 		~PageTable(); | ||||
| 
 | ||||
| 		void unmap_page(vaddr_t); | ||||
| 		void unmap_range(vaddr_t, size_t bytes); | ||||
| 
 | ||||
| 		void map_range_at(paddr_t, vaddr_t, size_t, flags_t); | ||||
| 		void map_range_at(paddr_t, vaddr_t, size_t bytes, flags_t); | ||||
| 		void map_page_at(paddr_t, vaddr_t, flags_t); | ||||
| 
 | ||||
| 		paddr_t physical_address_of(vaddr_t) const; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue