Subversion Repositories HelenOS

Rev

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

Rev 3788 Rev 3790
Line 422... Line 422...
422
#endif
422
#endif
423
 
423
 
424
void do_fast_instruction_access_mmu_miss_fault(istate_t *istate,
424
void do_fast_instruction_access_mmu_miss_fault(istate_t *istate,
425
    const char *str)
425
    const char *str)
426
{
426
{
427
    fault_if_from_uspace(istate, "%s", str);
427
    fault_if_from_uspace(istate, "%s.", str);
428
    dump_istate(istate);
428
    dump_istate(istate);
429
    panic("%s\n", str);
429
    panic("%s.", str);
430
}
430
}
431
 
431
 
432
void do_fast_data_access_mmu_miss_fault(istate_t *istate,
432
void do_fast_data_access_mmu_miss_fault(istate_t *istate,
433
    tlb_tag_access_reg_t tag, const char *str)
433
    tlb_tag_access_reg_t tag, const char *str)
434
{
434
{
435
    uintptr_t va;
435
    uintptr_t va;
436
 
436
 
437
    va = tag.vpn << MMU_PAGE_WIDTH;
437
    va = tag.vpn << MMU_PAGE_WIDTH;
438
    if (tag.context) {
438
    if (tag.context) {
439
        fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)", str, va,
439
        fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va,
440
            tag.context);
440
            tag.context);
441
    }
441
    }
442
    dump_istate(istate);
442
    dump_istate(istate);
443
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
443
    printf("Faulting page: %p, ASID=%d.\n", va, tag.context);
444
    panic("%s\n", str);
444
    panic("%s.", str);
445
}
445
}
446
 
446
 
447
void do_fast_data_access_protection_fault(istate_t *istate,
447
void do_fast_data_access_protection_fault(istate_t *istate,
448
    tlb_tag_access_reg_t tag, const char *str)
448
    tlb_tag_access_reg_t tag, const char *str)
449
{
449
{
450
    uintptr_t va;
450
    uintptr_t va;
451
 
451
 
452
    va = tag.vpn << MMU_PAGE_WIDTH;
452
    va = tag.vpn << MMU_PAGE_WIDTH;
453
 
453
 
454
    if (tag.context) {
454
    if (tag.context) {
455
        fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)", str, va,
455
        fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va,
456
            tag.context);
456
            tag.context);
457
    }
457
    }
458
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
458
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
459
    dump_istate(istate);
459
    dump_istate(istate);
460
    panic("%s\n", str);
460
    panic("%s.", str);
461
}
461
}
462
 
462
 
463
void dump_sfsr_and_sfar(void)
463
void dump_sfsr_and_sfar(void)
464
{
464
{
465
    tlb_sfsr_reg_t sfsr;
465
    tlb_sfsr_reg_t sfsr;