Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2283 → Rev 2284

/branches/arm/kernel/arch/arm32/src/mm/page_fault.c
38,6 → 38,7
#include <mm/as.h>
#include <genarch/mm/page_pt.h>
#include <arch.h>
#include <interrupt.h>
 
 
//TODO: remove in final version
137,17 → 138,17
// get instruction op code
instruction_t i_code = *(tmp.instr);
 
dprintf("get_instruction_memmory_access\n");
dprintf(" instr_addr:%X\n",instr_addr);
dprintf(" i_code:%X\n",i_code);
dprintf(" i_code.condition:%d\n", i_code.condition);
dprintf(" i_code.instr_type:%d\n",i_code.instr_type);
dprintf(" i_code.opcode:%d\n",i_code.opcode);
dprintf(" i_code.acess:%d\n", i_code.access);
dprintf(" i_code.dummy:%d\n", i_code.dummy);
dprintf(" i_code.bits567%d\n", i_code.bits567);
dprintf(" i_code.bit4:%d\n", i_code.bit4);
dprintf(" i_code.dummy1:%d\n", i_code.dummy1);
// dprintf("get_instruction_memmory_access\n");
// dprintf(" instr_addr:%X\n",instr_addr);
// dprintf(" i_code:%X\n",i_code);
// dprintf(" i_code.condition:%d\n", i_code.condition);
// dprintf(" i_code.instr_type:%d\n",i_code.instr_type);
// dprintf(" i_code.opcode:%d\n",i_code.opcode);
// dprintf(" i_code.acess:%d\n", i_code.access);
// dprintf(" i_code.dummy:%d\n", i_code.dummy);
// dprintf(" i_code.bits567%d\n", i_code.bits567);
// dprintf(" i_code.bit4:%d\n", i_code.bit4);
// dprintf(" i_code.dummy1:%d\n", i_code.dummy1);
 
 
// undefined instructions ... (or special instructions)
209,11 → 210,11
 
pf_access_t access = get_memmory_access_type( istate->lr, page);
 
print_istate(istate);
// print_istate(istate);
dprintf(" page fault : ip:%X, va:%X, status:%x(%x), access:%d\n", istate->lr, page, fsr.status,fsr, access);
 
/* Alf: Will be commented until stack problem will be solved ...
as_page_fault make consequent page faults
as_page_fault make consequent page faults*/
 
int ret = as_page_fault(page, access, istate);
dprintf(" as_page_fault ret:%d\n", ret);
222,7 → 223,7
 
panic("page fault\n");
}
*/
 
// TODO: Remove this ... now for testing purposes ... it's bad to test page faults in kernel, where no page faults should occures
panic("page fault ... solved\n");
 
240,7 → 241,7
dprintf(" prefetch_abourt ... instruction on adress:%x can't be fetched\n", istate->lr);
 
/* Alf: Will be commented until stack problem will be solved ...
as_page_fault make consequent page faults
as_page_fault make consequent page faults*/
 
int ret = as_page_fault(istate->lr, PF_ACCESS_EXEC, istate);
dprintf(" as_page_fault ret:%d\n", ret);
247,8 → 248,8
if (ret == AS_PF_FAULT) {
panic("page fault - instruction fetch at addr:%X\n", istate->lr);
}
*/
 
 
panic("Prefetch abourt ... solved");
}