diff options
Diffstat (limited to 'kernel/include/paging.h')
-rw-r--r-- | kernel/include/paging.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/kernel/include/paging.h b/kernel/include/paging.h index 7082e2e..2e1f844 100644 --- a/kernel/include/paging.h +++ b/kernel/include/paging.h @@ -13,13 +13,11 @@ pagedir_t *get_kernel_pagedir(); void switch_pagedir(pagedir_t *pd); -// The three functions below DO NOT DEPEND on argument pd for -// addresses above K_HIGHHALF_ADDR, so just pass 0 to map/unmap in kernel space. -uint32_t pd_get_frame(pagedir_t *pd, size_t vaddr); // get physical frame for virtual address -int pd_map_page(pagedir_t *pd, - size_t vaddr, uint32_t frame_id, +// these functions are always relative to the currently mapped page directory +uint32_t pd_get_frame(size_t vaddr); // get physical frame for virtual address +int pd_map_page(size_t vaddr, uint32_t frame_id, uint32_t rw); // returns nonzero on error -void pd_unmap_page(pagedir_t *pd, size_t vaddr); // does nothing if page wasn't mapped +void pd_unmap_page(size_t vaddr); // does nothing if page not mapped pagedir_t *create_pagedir(); // returns zero on error void delete_pagedir(pagedir_t *pd); |