Changeset b3b7e14a in mainline for kernel/arch


Ignore:
Timestamp:
2010-06-11T15:31:03Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
214ec25c
Parents:
be06914
Message:

distinguish between "hot" and "cold" exceptions
display only "hot" exceptions by default
add top to help

Location:
kernel/arch
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/debugger.c

    rbe06914 rb3b7e14a  
    333333#endif /* CONFIG_KCONSOLE */
    334334       
    335         exc_register(VECTOR_DEBUG, "debugger", debug_exception);
     335        exc_register(VECTOR_DEBUG, "debugger", true,
     336            debug_exception);
     337       
    336338#ifdef CONFIG_SMP
    337         exc_register(VECTOR_DEBUG_IPI, "debugger_smp", debug_ipi);
     339        exc_register(VECTOR_DEBUG_IPI, "debugger_smp", true,
     340            debug_ipi);
    338341#endif /* CONFIG_SMP */
    339342}
  • kernel/arch/amd64/src/interrupt.c

    rbe06914 rb3b7e14a  
    199199void interrupt_init(void)
    200200{
    201         int i;
     201        unsigned int i;
    202202       
    203203        for (i = 0; i < IVT_ITEMS; i++)
    204                 exc_register(i, "null", (iroutine) null_interrupt);
     204                exc_register(i, "null", false, (iroutine_t) null_interrupt);
    205205       
    206206        for (i = 0; i < IRQ_COUNT; i++) {
    207207                if ((i != IRQ_PIC_SPUR) && (i != IRQ_PIC1))
    208                         exc_register(IVT_IRQBASE + i, "irq",
    209                             (iroutine) irq_interrupt);
     208                        exc_register(IVT_IRQBASE + i, "irq", true,
     209                            (iroutine_t) irq_interrupt);
    210210        }
    211211       
    212         exc_register(0, "de_fault", (iroutine) de_fault);
    213         exc_register(7, "nm_fault", (iroutine) nm_fault);
    214         exc_register(12, "ss_fault", (iroutine) ss_fault);
    215         exc_register(13, "gp_fault", (iroutine) gp_fault);
    216         exc_register(14, "ident_mapper", (iroutine) ident_page_fault);
     212        exc_register(0, "de_fault", true, (iroutine_t) de_fault);
     213        exc_register(7, "nm_fault", true, (iroutine_t) nm_fault);
     214        exc_register(12, "ss_fault", true, (iroutine_t) ss_fault);
     215        exc_register(13, "gp_fault", true, (iroutine_t) gp_fault);
     216        exc_register(14, "ident_mapper", true, (iroutine_t) ident_page_fault);
    217217       
    218218#ifdef CONFIG_SMP
    219         exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown",
    220             (iroutine) tlb_shootdown_ipi);
     219        exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true,
     220            (iroutine_t) tlb_shootdown_ipi);
    221221#endif
    222222}
  • kernel/arch/amd64/src/mm/page.c

    rbe06914 rb3b7e14a  
    116116                page_table_unlock(AS_KERNEL, true);
    117117
    118                 exc_register(14, "page_fault", (iroutine) page_fault);
     118                exc_register(14, "page_fault", true, (iroutine_t) page_fault);
    119119                write_cr3((uintptr_t) AS_KERNEL->genarch.page_table);
    120         } else 
     120        } else
    121121                write_cr3((uintptr_t) AS_KERNEL->genarch.page_table);
    122122}
  • kernel/arch/arm32/include/ras.h

    rbe06914 rb3b7e14a  
    11/*
    2  * Copyright (c) 2009 Jakub Jermar 
     2 * Copyright (c) 2009 Jakub Jermar
    33 * All rights reserved.
    44 *
     
    4040#include <typedefs.h>
    4141
    42 #define RAS_START       0
    43 #define RAS_END         1
     42#define RAS_START  0
     43#define RAS_END    1
    4444
    4545extern uintptr_t *ras_page;
    4646
    4747extern void ras_init(void);
    48 extern void ras_check(int, istate_t *);
     48extern void ras_check(unsigned int, istate_t *);
    4949
    5050#endif
  • kernel/arch/arm32/src/exc_handler.S

    rbe06914 rb3b7e14a  
    150150        mov r0, #0
    151151        mov r1, r13
    152         bl ras_check 
     152        bl ras_check
    153153        LOAD_REGS_FROM_STACK
    154154
     
    158158        mov r0, #5
    159159        mov r1, r13
    160         bl ras_check 
     160        bl ras_check
    161161        LOAD_REGS_FROM_STACK
    162162
     
    166166        mov r0, #6
    167167        mov r1, r13
    168         bl ras_check 
     168        bl ras_check
    169169        LOAD_REGS_FROM_STACK
    170170
     
    173173        mov r0, #1
    174174        mov r1, r13
    175         bl ras_check 
     175        bl ras_check
    176176        LOAD_REGS_FROM_STACK
    177177
     
    181181        mov r0, #3
    182182        mov r1, r13
    183         bl ras_check 
     183        bl ras_check
    184184        LOAD_REGS_FROM_STACK
    185185
     
    189189        mov r0, #4
    190190        mov r1, r13
    191         bl ras_check 
     191        bl ras_check
    192192        LOAD_REGS_FROM_STACK
    193193
  • kernel/arch/arm32/src/exception.c

    rbe06914 rb3b7e14a  
    165165        install_exception_handlers();
    166166       
    167         exc_register(EXC_IRQ, "interrupt", (iroutine) irq_exception);
    168         exc_register(EXC_PREFETCH_ABORT, "prefetch abort",
    169             (iroutine) prefetch_abort);
    170         exc_register(EXC_DATA_ABORT, "data abort", (iroutine) data_abort);
    171         exc_register(EXC_SWI, "software interrupt", (iroutine) swi_exception);
     167        exc_register(EXC_IRQ, "interrupt", true,
     168            (iroutine_t) irq_exception);
     169        exc_register(EXC_PREFETCH_ABORT, "prefetch abort", true,
     170            (iroutine_t) prefetch_abort);
     171        exc_register(EXC_DATA_ABORT, "data abort", true,
     172            (iroutine_t) data_abort);
     173        exc_register(EXC_SWI, "software interrupt", true,
     174            (iroutine_t) swi_exception);
    172175}
    173176
  • kernel/arch/arm32/src/ras.c

    rbe06914 rb3b7e14a  
    11/*
    2  * Copyright (c) 2009 Jakub Jermar 
     2 * Copyright (c) 2009 Jakub Jermar
    33 * All rights reserved.
    44 *
     
    6666}
    6767
    68 void ras_check(int n, istate_t *istate)
     68void ras_check(unsigned int n, istate_t *istate)
    6969{
    7070        uintptr_t rewrite_pc = istate->pc;
  • kernel/arch/ia32/src/drivers/i8259.c

    rbe06914 rb3b7e14a  
    2727 */
    2828
    29 /** @addtogroup ia32   
     29/** @addtogroup ia32
    3030 * @{
    3131 */
     
    7676         * Register interrupt handler for the PIC spurious interrupt.
    7777         */
    78         exc_register(VECTOR_PIC_SPUR, "pic_spurious", (iroutine) pic_spurious);
     78        exc_register(VECTOR_PIC_SPUR, "pic_spurious", false,
     79            (iroutine_t) pic_spurious);
    7980
    8081        /*
  • kernel/arch/ia32/src/interrupt.c

    rbe06914 rb3b7e14a  
    215215void interrupt_init(void)
    216216{
    217         int i;
     217        unsigned int i;
    218218       
    219219        for (i = 0; i < IVT_ITEMS; i++)
    220                 exc_register(i, "null", (iroutine) null_interrupt);
     220                exc_register(i, "null", false, (iroutine_t) null_interrupt);
    221221       
    222222        for (i = 0; i < IRQ_COUNT; i++) {
    223223                if ((i != IRQ_PIC_SPUR) && (i != IRQ_PIC1))
    224                         exc_register(IVT_IRQBASE + i, "irq", (iroutine) irq_interrupt);
     224                        exc_register(IVT_IRQBASE + i, "irq", true,
     225                            (iroutine_t) irq_interrupt);
    225226        }
    226227       
    227         exc_register(0, "de_fault", (iroutine) de_fault);
    228         exc_register(7, "nm_fault", (iroutine) nm_fault);
    229         exc_register(12, "ss_fault", (iroutine) ss_fault);
    230         exc_register(13, "gp_fault", (iroutine) gp_fault);
    231         exc_register(19, "simd_fp", (iroutine) simd_fp_exception);
     228        exc_register(0, "de_fault", true, (iroutine_t) de_fault);
     229        exc_register(7, "nm_fault", true, (iroutine_t) nm_fault);
     230        exc_register(12, "ss_fault", true, (iroutine_t) ss_fault);
     231        exc_register(13, "gp_fault", true, (iroutine_t) gp_fault);
     232        exc_register(19, "simd_fp", true, (iroutine_t) simd_fp_exception);
    232233       
    233234#ifdef CONFIG_SMP
    234         exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", (iroutine) tlb_shootdown_ipi);
     235        exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true,
     236            (iroutine_t) tlb_shootdown_ipi);
    235237#endif
    236238}
  • kernel/arch/ia32/src/mm/page.c

    rbe06914 rb3b7e14a  
    7070                page_table_unlock(AS_KERNEL, true);
    7171               
    72                 exc_register(14, "page_fault", (iroutine) page_fault);
     72                exc_register(14, "page_fault", true, (iroutine_t) page_fault);
    7373                write_cr3((uintptr_t) AS_KERNEL->genarch.page_table);
    7474        } else
  • kernel/arch/ia32/src/smp/apic.c

    rbe06914 rb3b7e14a  
    157157void apic_init(void)
    158158{
    159         exc_register(VECTOR_APIC_SPUR, "apic_spurious", (iroutine) apic_spurious);
     159        exc_register(VECTOR_APIC_SPUR, "apic_spurious", false,
     160            (iroutine_t) apic_spurious);
    160161       
    161162        enable_irqs_function = io_apic_enable_irqs;
  • kernel/arch/mips32/src/exception.c

    rbe06914 rb3b7e14a  
    167167void exception_init(void)
    168168{
    169         int i;
     169        unsigned int i;
    170170       
    171171        /* Clear exception table */
    172172        for (i = 0; i < IVT_ITEMS; i++)
    173                 exc_register(i, "undef", (iroutine) unhandled_exception);
     173                exc_register(i, "undef", false,
     174                    (iroutine_t) unhandled_exception);
    174175       
    175         exc_register(EXC_Bp, "bkpoint", (iroutine) breakpoint_exception);
    176         exc_register(EXC_RI, "resinstr", (iroutine) reserved_instr_exception);
    177         exc_register(EXC_Mod, "tlb_mod", (iroutine) tlbmod_exception);
    178         exc_register(EXC_TLBL, "tlbinvl", (iroutine) tlbinv_exception);
    179         exc_register(EXC_TLBS, "tlbinvl", (iroutine) tlbinv_exception);
    180         exc_register(EXC_Int, "interrupt", (iroutine) interrupt_exception);
     176        exc_register(EXC_Bp, "bkpoint", true,
     177            (iroutine_t) breakpoint_exception);
     178        exc_register(EXC_RI, "resinstr", true,
     179            (iroutine_t) reserved_instr_exception);
     180        exc_register(EXC_Mod, "tlb_mod", true,
     181            (iroutine_t) tlbmod_exception);
     182        exc_register(EXC_TLBL, "tlbinvl", true,
     183            (iroutine_t) tlbinv_exception);
     184        exc_register(EXC_TLBS, "tlbinvl", true,
     185            (iroutine_t) tlbinv_exception);
     186        exc_register(EXC_Int, "interrupt", true,
     187            (iroutine_t) interrupt_exception);
     188       
    181189#ifdef CONFIG_FPU_LAZY
    182         exc_register(EXC_CpU, "cpunus", (iroutine) cpuns_exception);
     190        exc_register(EXC_CpU, "cpunus", true,
     191            (iroutine_t) cpuns_exception);
    183192#endif
    184         exc_register(EXC_Sys, "syscall", (iroutine) syscall_exception);
     193       
     194        exc_register(EXC_Sys, "syscall", true,
     195            (iroutine_t) syscall_exception);
    185196}
    186197
  • kernel/arch/ppc32/src/interrupt.c

    rbe06914 rb3b7e14a  
    101101void interrupt_init(void)
    102102{
    103         exc_register(VECTOR_DATA_STORAGE, "data_storage", pht_refill);
    104         exc_register(VECTOR_INSTRUCTION_STORAGE, "instruction_storage", pht_refill);
    105         exc_register(VECTOR_EXTERNAL, "external", exception_external);
    106         exc_register(VECTOR_DECREMENTER, "timer", exception_decrementer);
     103        exc_register(VECTOR_DATA_STORAGE, "data_storage", true,
     104            pht_refill);
     105        exc_register(VECTOR_INSTRUCTION_STORAGE, "instruction_storage", true,
     106            pht_refill);
     107        exc_register(VECTOR_EXTERNAL, "external", true,
     108            exception_external);
     109        exc_register(VECTOR_DECREMENTER, "timer", true,
     110            exception_decrementer);
    107111}
    108112
  • kernel/arch/sparc64/include/sparc64.h

    rbe06914 rb3b7e14a  
    3838#include <interrupt.h>
    3939
    40 extern void interrupt_register(int n, const char *name, iroutine f);
     40extern void interrupt_register(unsigned int, const char *, iroutine_t);
    4141
    4242#endif
  • kernel/arch/sparc64/src/trap/interrupt.c

    rbe06914 rb3b7e14a  
    5151/** Register Interrupt Level Handler.
    5252 *
    53  * @param n Interrupt Level (1 - 15).
    54  * @param name Short descriptive string.
    55  * @param f Handler.
     53 * @param n       Interrupt Level (1 - 15).
     54 * @param name    Short descriptive string.
     55 * @param handler Handler.
     56 *
    5657 */
    57 void interrupt_register(int n, const char *name, iroutine f)
     58void interrupt_register(unsigned int n, const char *name, iroutine_t handler)
    5859{
    5960        ASSERT(n >= IVT_FIRST && n <= IVT_ITEMS);
    6061       
    61         exc_register(n - 1, name, f);
     62        exc_register(n - IVT_FIRST, name, true, handler);
    6263}
     64
    6365/** @}
    6466 */
Note: See TracChangeset for help on using the changeset viewer.