Subversion Repositories HelenOS

Rev

Rev 1868 | Rev 1880 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1868 Rev 1870
Line 38... Line 38...
38
#include <mm/asid.h>
38
#include <mm/asid.h>
39
#include <arch/mm/frame.h>
39
#include <arch/mm/frame.h>
40
#include <arch/mm/page.h>
40
#include <arch/mm/page.h>
41
#include <arch/mm/mmu.h>
41
#include <arch/mm/mmu.h>
42
#include <arch/interrupt.h>
42
#include <arch/interrupt.h>
-
 
43
#include <interrupt.h>
43
#include <arch.h>
44
#include <arch.h>
44
#include <print.h>
45
#include <print.h>
45
#include <arch/types.h>
46
#include <arch/types.h>
46
#include <typedefs.h>
47
#include <typedefs.h>
47
#include <config.h>
48
#include <config.h>
Line 306... Line 307...
306
 
307
 
307
void do_fast_instruction_access_mmu_miss_fault(istate_t *istate, const char *str)
308
void do_fast_instruction_access_mmu_miss_fault(istate_t *istate, const char *str)
308
{
309
{
309
    char *tpc_str = get_symtab_entry(istate->tpc);
310
    char *tpc_str = get_symtab_entry(istate->tpc);
310
 
311
 
-
 
312
    fault_if_from_uspace(istate, "%s\n", str);
311
    printf("TPC=%p, (%s)\n", istate->tpc, tpc_str);
313
    printf("TPC=%p, (%s)\n", istate->tpc, tpc_str);
312
    panic("%s\n", str);
314
    panic("%s\n", str);
313
}
315
}
314
 
316
 
315
void do_fast_data_access_mmu_miss_fault(istate_t *istate, tlb_tag_access_reg_t tag, const char *str)
317
void do_fast_data_access_mmu_miss_fault(istate_t *istate, tlb_tag_access_reg_t tag, const char *str)
Line 317... Line 319...
317
    uintptr_t va;
319
    uintptr_t va;
318
    char *tpc_str = get_symtab_entry(istate->tpc);
320
    char *tpc_str = get_symtab_entry(istate->tpc);
319
 
321
 
320
    va = tag.vpn << PAGE_WIDTH;
322
    va = tag.vpn << PAGE_WIDTH;
321
 
323
 
-
 
324
    fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va, tag.context);
322
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
325
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
323
    printf("TPC=%p, (%s)\n", istate->tpc, tpc_str);
326
    printf("TPC=%p, (%s)\n", istate->tpc, tpc_str);
324
    panic("%s\n", str);
327
    panic("%s\n", str);
325
}
328
}
326
 
329
 
Line 329... Line 332...
329
    uintptr_t va;
332
    uintptr_t va;
330
    char *tpc_str = get_symtab_entry(istate->tpc);
333
    char *tpc_str = get_symtab_entry(istate->tpc);
331
 
334
 
332
    va = tag.vpn << PAGE_WIDTH;
335
    va = tag.vpn << PAGE_WIDTH;
333
 
336
 
-
 
337
    fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va, tag.context);
334
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
338
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
335
    printf("TPC=%p, (%s)\n", istate->tpc, tpc_str);
339
    printf("TPC=%p, (%s)\n", istate->tpc, tpc_str);
336
    panic("%s\n", str);
340
    panic("%s\n", str);
337
}
341
}
338
 
342