Changeset 13c94f7 in mainline for kernel/arch/sparc32/src/mm/page.c


Ignore:
Timestamp:
2013-10-15T17:54:23Z (11 years ago)
Author:
Jakub Klama <jakub.klama@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d783145
Parents:
e76fed9
Message:
  • Further work on preemptible trap handlers
  • Implemented page fault handling
  • Initial syscall and userspace support
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc32/src/mm/page.c

    re76fed9 r13c94f7  
    8787        uintptr_t fault_address = asi_u32_read(ASI_MMUREGS, MMU_FAULT_ADDRESS);
    8888        mmu_fault_status_t *fault = (mmu_fault_status_t *)&fault_status;
    89         mmu_fault_type_t type = (mmu_fault_type_t)fault->ft;
     89        mmu_fault_type_t type = (mmu_fault_type_t)fault->at;
    9090
    91         printf("page fault on address 0x%08x, status 0x%08x\n", fault_address, fault_status);
     91        printf("page fault on address 0x%08x, status 0x%08x, type %d\n", fault_address, fault_status, type);
    9292
    93         if (type == FAULT_TYPE_LOAD_USER_DATA
     93        if (type == FAULT_TYPE_LOAD_USER_DATA || type == FAULT_TYPE_LOAD_SUPERVISOR_DATA)       
    9494                as_page_fault(fault_address, PF_ACCESS_READ, istate);
    9595
    96         if (type == FAULT_TYPE_EXECUTE_USER)
     96        if (type == FAULT_TYPE_EXECUTE_USER || type == FAULT_TYPE_EXECUTE_SUPERVISOR)
    9797                as_page_fault(fault_address, PF_ACCESS_EXEC, istate);
    9898
    99         if (type == FAULT_TYPE_STORE_USER_DATA || type == FAULT_TYPE_STORE_USER_INSTRUCTION)
     99        if (type == FAULT_TYPE_STORE_USER_DATA || type == FAULT_TYPE_STORE_USER_INSTRUCTION || type == FAULT_TYPE_STORE_SUPERVISOR_INSTRUCTION)
    100100                as_page_fault(fault_address, PF_ACCESS_WRITE, istate);
    101101}
Note: See TracChangeset for help on using the changeset viewer.