1 #ifndef KERNEL_SCHEDULER_H
2 #define KERNEL_SCHEDULER_H
4 Copyright © 2017, The AROS Development Team. All rights reserved.
10 #include <aros/config.h>
12 #if defined(__AROSEXEC_SMP__)
13 #include <exec/tasks.h>
15 struct X86SchedulerPrivate
17 struct Task
*RunningTask
; /* Currently running task on this core */
20 UWORD Granularity
; /* length of one heartbear tick */
21 UWORD Quantum
; /* # of heartbeat ticks, a task may run */
22 UWORD Elapsed
; /* # of heartbeat ticks, the current task has run */
28 BOOL
core_Schedule(void); /* Reschedule the current task if needed */
29 void core_Switch(void); /* Switch away from the current task */
30 struct Task
*core_Dispatch(void); /* Select the new task for execution */
31 #if defined(__AROSEXEC_SMP__)
32 void core_InitScheduleData(struct X86SchedulerPrivate
*);
34 #endif /* !KERNEL_SCHEDULER_H */