From 79576ac9c557a89d878e5b6fdb2fd5c2f68bb35b Mon Sep 17 00:00:00 2001 From: Alexander Huddleston Date: Tue, 27 Jun 2017 18:41:45 -0500 Subject: [PATCH] transferring files. --- MP3/MP3_Sources/kernel.C | 3 +++ MP3/MP3_Sources/page_table.C | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/MP3/MP3_Sources/kernel.C b/MP3/MP3_Sources/kernel.C index bb97e13..3e28c6d 100755 --- a/MP3/MP3_Sources/kernel.C +++ b/MP3/MP3_Sources/kernel.C @@ -171,6 +171,9 @@ int main() { int i; for (i=0; iget_frames(1)); // Getting frame address to assign to page directory. + unsigned long * temp_page_directory = (unsigned long *) ((kernel_mem_pool->get_frames(1)) << 12); // Getting frame address to assign to page directory. - unsigned long * page_table = (unsigned long *) (4096 * kernel_mem_pool->get_frames(1)); // Get another frame for the page table. + unsigned long * page_table = (unsigned long *) ((kernel_mem_pool->get_frames(1)) << 12); // Get another frame for the page table. unsigned long tempaddr = 0; // Temporary address iterator. @@ -54,6 +54,7 @@ PageTable::PageTable() temp_page_directory[j] = 0 | 2; } + //page_directory = (unsigned long *) ((unsigned long)temp_page_directory + (unsigned long)page_table + (unsigned long)page_table[0]); page_directory = temp_page_directory; current_page_table = this; @@ -64,13 +65,17 @@ PageTable::PageTable() void PageTable::load() { + //write_cr3((unsigned long)page_directory + (unsigned long)page_directory[0] + (unsigned long)((unsigned long *)page_directory[0])[0]); write_cr3((unsigned long)page_directory); + Console::puti((unsigned long)page_directory); +//for(;;); current_page_table = this; Console::puts("\nLoaded page table\n"); } void PageTable::enable_paging() { + //write_cr3((unsigned long)current_page_table->page_directory + (unsigned long)current_page_table->page_directory[0] + (unsigned long)((unsigned long *)current_page_table->page_directory[0])[0]); write_cr3((unsigned long)current_page_table->page_directory); write_cr0(read_cr0() | 0x80000000); paging_enabled = read_cr0(); @@ -93,7 +98,7 @@ Console::puti(read_cr2()); Console::puts("\naddress: "); Console::puti(read_cr3()); - +for(;;); Console::puts("\nhandled page fault\n"); }