Subversion Repositories HelenOS

Rev

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

Rev 2411 Rev 2414
Line 159... Line 159...
159
 *
159
 *
160
 * The default mode for interrupt servicing (Interrupt Mode)
160
 * The default mode for interrupt servicing (Interrupt Mode)
161
 * can not be used because of nested interrupts (which can occur
161
 * can not be used because of nested interrupts (which can occur
162
 * because interrupt are enabled in higher levels of interrupt handler).
162
 * because interrupt are enabled in higher levels of interrupt handler).
163
 */
163
 */
164
inline static void switchToIrqServicingMode()
164
inline static void switch_to_irq_servicing_mode()
165
{
165
{
166
    /* switch to Undefined mode */
166
    /* switch to Undefined mode */
167
    asm volatile(
167
    asm volatile(
168
        /* save regs used during switching */
168
        /* save regs used during switching */
169
        "stmfd sp!, {r0-r3}     \n"
169
        "stmfd sp!, {r0-r3}     \n"
Line 281... Line 281...
281
static void irq_exception_entry()
281
static void irq_exception_entry()
282
{
282
{
283
    asm("sub lr, lr, #4");
283
    asm("sub lr, lr, #4");
284
    setup_stack_and_save_regs();
284
    setup_stack_and_save_regs();
285
   
285
   
286
    switchToIrqServicingMode();
286
    switch_to_irq_servicing_mode();
287
   
287
   
288
    CALL_EXC_DISPATCH(EXC_IRQ)
288
    CALL_EXC_DISPATCH(EXC_IRQ)
289
 
289
 
290
    load_regs();
290
    load_regs();
291
}
291
}