Changeset 1f12fab in mainline for kernel/arch/sparc32/src/exception.c


Ignore:
Timestamp:
2013-10-07T20:00:34Z (11 years ago)
Author:
Jakub Klama <jakub.klama@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a73ebf0
Parents:
80d9d83
Message:

First attempt to implement preemptive trap handlers
and switch to userspace. Preemptive traps are needed
for at least page faults, as page fault handling code
can trigger window underflow/overflow exceptions.

This commit also introduces userspace window buffer
for saving userspace register windows (just as in
sparc64).

These changes are unfinished and far from working
correctly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc32/src/exception.c

    r80d9d83 r1f12fab  
    4848void instruction_access_exception(int n, istate_t *istate)
    4949{
    50         fault_if_from_uspace(istate, "%s.", __func__);
    51         panic_badtrap(istate, n, "%s.", __func__);
     50        page_fault(n, istate);
     51//      fault_if_from_uspace(istate, "%s.", __func__);
     52//      panic_badtrap(istate, n, "%s.", __func__);
    5253}
    5354
     
    104105void data_access_exception(int n, istate_t *istate)
    105106{
    106         fault_if_from_uspace(istate, "%s.", __func__);
    107         panic_badtrap(istate, n, "%s.", __func__);
     107        page_fault(n, istate);
     108//      fault_if_from_uspace(istate, "%s.", __func__);
     109//      panic_badtrap(istate, n, "%s.", __func__);
    108110}
    109111
     
    111113void data_access_error(int n, istate_t *istate)
    112114{
    113         fault_if_from_uspace(istate, "%s.", __func__);
    114         panic_badtrap(istate, n, "%s.", __func__);
     115        page_fault(n, istate);
     116//      fault_if_from_uspace(istate, "%s.", __func__);
     117//      panic_badtrap(istate, n, "%s.", __func__);
    115118}
    116119
     
    118121void data_store_error(int n, istate_t *istate)
    119122{
    120         fault_if_from_uspace(istate, "%s.", __func__);
    121         panic_badtrap(istate, n, "%s.", __func__);
     123        page_fault(n, istate);
     124//      fault_if_from_uspace(istate, "%s.", __func__);
     125//      panic_badtrap(istate, n, "%s.", __func__);
    122126}
    123127/** Handle data_access_error. (0x2c) */
Note: See TracChangeset for help on using the changeset viewer.