Transferring changes.

This commit is contained in:
Alex 2017-06-27 03:18:49 -05:00
parent b031a19f91
commit 495243854b

View file

@ -25,11 +25,9 @@ void PageTable::init_paging(ContFramePool * _kernel_mem_pool,
PageTable::PageTable() 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)); // Getting frame address to assign to page directory.
unsigned long * temp_page_directory = (unsigned long *) (4096 * kernel_mem_pool->get_frames(1)); // Should I get the address like this???
//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)); // Get another frame for the page table.
unsigned long * page_table = (unsigned long *) (4096 * kernel_mem_pool->get_frames(1)); // Might be able to just do this.
unsigned long tempaddr = 0; // Temporary address iterator. unsigned long tempaddr = 0; // Temporary address iterator.
@ -75,7 +73,10 @@ void PageTable::enable_paging()
void PageTable::handle_fault(REGS * _r) 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::puts("\nerror code: ");
Console::puti(_r->err_code); Console::puti(_r->err_code);