From 495243854b1401e84ec47e211195949360639903 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 27 Jun 2017 03:18:49 -0500 Subject: [PATCH] Transferring changes. --- MP3/MP3_Sources/page_table.C | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/MP3/MP3_Sources/page_table.C b/MP3/MP3_Sources/page_table.C index c5c4864..d38c1c0 100644 --- a/MP3/MP3_Sources/page_table.C +++ b/MP3/MP3_Sources/page_table.C @@ -25,11 +25,9 @@ void PageTable::init_paging(ContFramePool * _kernel_mem_pool, PageTable::PageTable() { - //unsigned long * temp_page_directory = (unsigned long *) 0x32000; // Should be the starting address after 1st 2MB - unsigned long * temp_page_directory = (unsigned long *) (4096 * kernel_mem_pool->get_frames(1)); // Should I get the address like this??? + unsigned long * temp_page_directory = (unsigned long *) (4096 * kernel_mem_pool->get_frames(1)); // Getting frame address to assign to page directory. - //unsigned long * page_table = (unsigned long *) 0x33000; // Should be 4kb after the page directory. - unsigned long * page_table = (unsigned long *) (4096 * kernel_mem_pool->get_frames(1)); // Might be able to just do this. + unsigned long * page_table = (unsigned long *) (4096 * kernel_mem_pool->get_frames(1)); // Get another frame for the page table. unsigned long tempaddr = 0; // Temporary address iterator. @@ -75,7 +73,10 @@ void PageTable::enable_paging() void PageTable::handle_fault(REGS * _r) { - unsigned long tempframe = process_mem_pool->get_frames(1); + unsigned long temp_addr = (process_mem_pool->get_frames(1)); + ((unsigned long *) ((unsigned long *) current_page_table->page_directory)[0])[temp_addr] + = ((unsigned long *) ((unsigned long *) current_page_table->page_directory)[0])[temp_addr] | 3; + Console::puts("\nerror code: "); Console::puti(_r->err_code);