2 * Copyright (C) 2012, The AROS Development Team
4 * Author: Jason S. McMullan <jason.mcmullan@gmail.com>
6 * Licensed under the AROS PUBLIC LICENSE (APL) Version 1.1
9 #include <exec/execbase.h>
10 #include <hardware/intbits.h>
11 #include <proto/exec.h>
13 #include <kernel_base.h>
14 #include <kernel_intr.h>
15 #include <kernel_scheduler.h>
16 #include <kernel_syscall.h>
18 /* Called on leaveing the interrupt.
19 * This function returns TRUE if the task scheduler is needed.
21 BOOL
core_ExitIntr(VOID
)
23 /* Soft interrupt requested? It's high time to do it */
24 if (SysBase
->SysFlags
& SFF_SoftInt
)
25 core_Cause(INTB_SOFTINT
, 1L << INTB_SOFTINT
);
27 /* If task switching is disabled, do nothing */
28 if (SysBase
->TDNestCnt
< 0)
31 * Do not disturb task if it's not necessary.
32 * Reschedule only if switch pending flag is set. Exit otherwise.
34 if (SysBase
->AttnResched
& ARF_AttnSwitch
)
36 /* Run task scheduling sequence */