mmap #8
@ -65,13 +65,15 @@ void pagefault_handler(struct cpu_state *frame, ulong intr)
|
||||
|
||||
// PAGE_FAULT is a interrupt with an error code (see exception_wrapper.S)
|
||||
uint32_t error_code = cpu_context_get_EX_err(frame);
|
||||
|
||||
if (!uAddrSpaceSolvePageFault(as, faultAddr, error_code & 0x2))
|
||||
int ret = uAddrSpaceSolvePageFault(as, faultAddr, error_code & 0x2);
|
||||
if (!ret){
|
||||
return;
|
||||
}
|
||||
|
||||
printf(
|
||||
"page fault while in thread [%s] at 0x%p when trying to access 0x%p err_code 0x%x\n",
|
||||
current->name, (void *)cpu_context_get_PC(frame), (void *)faultAddr, error_code);
|
||||
"page fault while in thread [%s] at 0x%p when trying to access 0x%p err_code 0x%x ressource ret %d\n",
|
||||
current->name, (void *)cpu_context_get_PC(frame), (void *)faultAddr, error_code,
|
||||
ret);
|
||||
printf("Killing User Thread\n");
|
||||
threadExit();
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user