EE445M RTOS
Taken at the University of Texas Spring 2015
|
Go to the source code of this file.
Macros | |
#define | SCHEDULER_DEFAULT_MAX_THREADS 5 |
#define | SYSTICKS_PER_HZ 80000000 |
#define | MAX_SYSTICKS_PER_HZ 16777216 |
#define | SYSCTLCLOCK 16000000 |
#define | SCHEDULER_MAX_THREADS SCHEDULER_DEFAULT_MAX_THREADS |
Typedefs | |
typedef void(* | pisr_t) (notification note) |
Functions | |
void | schedule_init () |
void | schedule (task_t, frequency_t, DEADLINE_TYPE) |
void | schedule_aperiodic (pisr_t, HW_TYPE, hw_metadata, microseconds_t, DEADLINE_TYPE) |
sched_task_pool * | schedule_hash_find_int (sched_task_pool *queues, frequency_t target_frequency) |
void | schedule_hash_add_int (sched_task_pool *queues, sched_task_pool *add) |
sched_task * | edf_get_edf_queue () |
void | _os_choose_next_thread () |
Variables | |
static sched_task_pool | SCHEDULER_TASK_QUEUES [5] |
static volatile sched_task_pool * | SCHEDULER_UNUSED_QUEUES = NULL |
static volatile sched_task_pool * | SCHEDULER_QUEUES = NULL |
static sched_task | SCHEDULER_TASKS [5] |
static sched_task * | SCHEDULER_UNUSED_TASKS = NULL |
#define MAX_SYSTICKS_PER_HZ 16777216 |
Definition at line 21 of file schedule.h.
Referenced by schedule().
#define SCHEDULER_DEFAULT_MAX_THREADS 5 |
Definition at line 19 of file schedule.h.
#define SCHEDULER_MAX_THREADS SCHEDULER_DEFAULT_MAX_THREADS |
Definition at line 25 of file schedule.h.
#define SYSCTLCLOCK 16000000 |
Definition at line 22 of file schedule.h.
#define SYSTICKS_PER_HZ 80000000 |
Definition at line 20 of file schedule.h.
Referenced by edf_pop().
typedef void(* pisr_t) (notification note) |
Definition at line 28 of file schedule.h.
void _os_choose_next_thread | ( | ) |
Definition at line 544 of file os.c.
References scheduler_reschedule().
Referenced by os_launch().
sched_task* edf_get_edf_queue | ( | ) |
void schedule | ( | task_t | , |
frequency_t | , | ||
DEADLINE_TYPE | |||
) |
Definition at line 386 of file os.c.
References sched_task::absolute_deadline, CDL_APPEND, CDL_DELETE, CDL_PREPEND, clock, sched_task_pool::deadline, MAX_SYSTICKS_PER_HZ, sched_task_pool::next, NULL, os_add_thread(), postpone_death, sched_task_pool::prev, sched_task_pool::queue, schedule_hash_find_int(), SCHEDULER_QUEUES, SCHEDULER_UNUSED_QUEUES, SCHEDULER_UNUSED_TASKS, sched_task::seriousness, sched_task::task, and sched_task::tcb.
Referenced by main().
void schedule_aperiodic | ( | pisr_t | , |
HW_TYPE | , | ||
hw_metadata | , | ||
microseconds_t | , | ||
DEADLINE_TYPE | |||
) |
Schedule a pseudo-isr to be executed when a hardware event described by HW_TYPE and hw_metadata occurs.
Definition at line 435 of file os.c.
References _hw_subscribe().
void schedule_hash_add_int | ( | sched_task_pool * | queues, |
sched_task_pool * | add | ||
) |
sched_task_pool* schedule_hash_find_int | ( | sched_task_pool * | queues, |
frequency_t | target_frequency | ||
) |
Definition at line 456 of file os.c.
References sched_task_pool::deadline, sched_task_pool::next, and NULL.
Referenced by schedule().
void schedule_init | ( | ) |
Initialize all deep datastructures used by libschedule.
Definition at line 445 of file os.c.
References DL_PREPEND, SCHEDULER_MAX_THREADS, SCHEDULER_TASK_QUEUES, SCHEDULER_TASKS, SCHEDULER_UNUSED_QUEUES, and SCHEDULER_UNUSED_TASKS.
Referenced by os_threading_init().
|
static |
UTHash of live task queues
Definition at line 38 of file schedule.h.
Referenced by edf_init(), edf_pop(), schedule(), and scheduler_reschedule().
|
static |
Statically allocated multiple queues of tasks
Definition at line 31 of file schedule.h.
Referenced by schedule_init().
|
static |
Statically allocated task metadata structures for the scheduler to manage
Definition at line 42 of file schedule.h.
Referenced by schedule_init().
|
static |
Doubly linked list of unused task queues
Definition at line 34 of file schedule.h.
Referenced by schedule(), and schedule_init().
|
static |
Doubly linked list of unused tasks
Definition at line 45 of file schedule.h.
Referenced by schedule(), and schedule_init().