diff options
Diffstat (limited to 'src/kernel/memory/paging.c')
-rw-r--r-- | src/kernel/memory/paging.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/kernel/memory/paging.c b/src/kernel/memory/paging.c index 19ec11d..add400e 100644 --- a/src/kernel/memory/paging.c +++ b/src/kernel/memory/paging.c @@ -88,11 +88,12 @@ void paging_map(struct page_directory *dir, uint32_t phys, uint32_t virt) short id = virt >> 22; struct page_table *tab = paging_make_table(); - dir->tables[id] = ((struct page_table *)((uint32_t)tab | 3)); // RW + dir->tables[id] = ((struct page_table *)((uint32_t)tab | 3 | 4)); // RW for (int i = 0; i < 1024; i++) { tab->pages[i].frame = phys >> 12; tab->pages[i].present = 1; + tab->pages[i].user = 1; // TODO: Remove all-user paging! phys += 4096; } } @@ -104,8 +105,7 @@ void paging_map_user(struct page_directory *dir, uint32_t phys, uint32_t virt) dir->tables[id] = ((struct page_table *)((uint32_t)tab | 3 | 4)); // RW + usermode - int i; - for (i = 0; i < 1024; i++) { + for (int i = 0; i < 1024; i++) { tab->pages[i].frame = phys >> 12; tab->pages[i].present = 1; tab->pages[i].user = 1; |