Subversion Repositories HelenOS-historic

Rev

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

Rev 664 Rev 667
Line 27... Line 27...
27
 */
27
 */
28
 
28
 
29
#include <arch/trap/trap.h>
29
#include <arch/trap/trap.h>
30
#include <arch/trap/trap_table.h>
30
#include <arch/trap/trap_table.h>
31
#include <arch/trap/regwin.h>
31
#include <arch/trap/regwin.h>
-
 
32
#include <arch/trap/exception.h>
32
#include <arch/trap/interrupt.h>
33
#include <arch/trap/interrupt.h>
33
#include <arch/asm.h>
34
#include <arch/asm.h>
34
#include <memstr.h>
35
#include <memstr.h>
35
#include <debug.h>
36
#include <debug.h>
36
#include <arch/types.h>
37
#include <arch/types.h>
Line 51... Line 52...
51
    memcpy((void *) trap_table, (void *) tba_read(), TRAP_TABLE_SIZE);
52
    memcpy((void *) trap_table, (void *) tba_read(), TRAP_TABLE_SIZE);
52
   
53
   
53
    /*
54
    /*
54
     * Install kernel-provided handlers.
55
     * Install kernel-provided handlers.
55
     */
56
     */
-
 
57
    trap_install_handler(TT_INSTRUCTION_ACCESS_EXCEPTION, TRAP_TABLE_ENTRY_SIZE, false);
56
    trap_install_handler(TT_CLEAN_WINDOW, CLEAN_WINDOW_HANDLER_SIZE, false);
58
    trap_install_handler(TT_CLEAN_WINDOW, CLEAN_WINDOW_HANDLER_SIZE, false);
-
 
59
    trap_install_handler(TT_MEM_ADDRESS_NOT_ALIGNED, TRAP_TABLE_ENTRY_SIZE, false);
57
    trap_install_handler(TT_SPILL_0_NORMAL, SPILL_HANDLER_SIZE, false);
60
    trap_install_handler(TT_SPILL_0_NORMAL, SPILL_HANDLER_SIZE, false);
58
    trap_install_handler(TT_FILL_0_NORMAL, FILL_HANDLER_SIZE, false);
61
    trap_install_handler(TT_FILL_0_NORMAL, FILL_HANDLER_SIZE, false);
-
 
62
    trap_install_handler(TT_INSTRUCTION_ACCESS_EXCEPTION, TRAP_TABLE_ENTRY_SIZE, true);
59
    trap_install_handler(TT_CLEAN_WINDOW, CLEAN_WINDOW_HANDLER_SIZE, true);
63
    trap_install_handler(TT_CLEAN_WINDOW, CLEAN_WINDOW_HANDLER_SIZE, true);
-
 
64
    trap_install_handler(TT_MEM_ADDRESS_NOT_ALIGNED, TRAP_TABLE_ENTRY_SIZE, true);
60
    trap_install_handler(TT_SPILL_0_NORMAL, SPILL_HANDLER_SIZE, true);
65
    trap_install_handler(TT_SPILL_0_NORMAL, SPILL_HANDLER_SIZE, true);
61
    trap_install_handler(TT_FILL_0_NORMAL, FILL_HANDLER_SIZE, true);
66
    trap_install_handler(TT_FILL_0_NORMAL, FILL_HANDLER_SIZE, true);
62
    trap_install_handler(TT_INTERRUPT_LEVEL_1, INTERRUPT_LEVEL_N_HANDLER_SIZE, false);
67
    trap_install_handler(TT_INTERRUPT_LEVEL_1, INTERRUPT_LEVEL_N_HANDLER_SIZE, false);
63
    trap_install_handler(TT_INTERRUPT_LEVEL_2, INTERRUPT_LEVEL_N_HANDLER_SIZE, false);
68
    trap_install_handler(TT_INTERRUPT_LEVEL_2, INTERRUPT_LEVEL_N_HANDLER_SIZE, false);
64
    trap_install_handler(TT_INTERRUPT_LEVEL_3, INTERRUPT_LEVEL_N_HANDLER_SIZE, false);
69
    trap_install_handler(TT_INTERRUPT_LEVEL_3, INTERRUPT_LEVEL_N_HANDLER_SIZE, false);