EE445M RTOS
Taken at the University of Texas Spring 2015
schedule.h
Go to the documentation of this file.
1 /* -*- mode: c; c-basic-offset: 4; -*- */
2 /* Created by Hershal Bhave and Eric Crosson 2015-03-07 */
3 /* Revision history: Look in Git FGT */
4 #ifndef __SCHEDULE__
5 #define __SCHEDULE__
6 
11 /* We are using the priority scheduler */
12 
13 /* Recognized priority schedulers */
15 #include "libnotify/notify.h"
16 #include "libhw/hardware.h"
17 /* #include "libut/uthash.h" */
18 
19 #define SCHEDULER_DEFAULT_MAX_THREADS 5
20 #define SYSTICKS_PER_HZ 80000000
21 #define MAX_SYSTICKS_PER_HZ 16777216
22 #define SYSCTLCLOCK 16000000
23 
24 /* #if !(defined(SCHEDULER_MAX_THREADS)) */
25 #define SCHEDULER_MAX_THREADS SCHEDULER_DEFAULT_MAX_THREADS
26 /* #endif */
27 
28 typedef void (*pisr_t)(notification note); /* a task capable of being run */
29 
32 
35 
37 /* for now it's a utlist though, don't get confused */
39 
43 
46 
47 
49 void schedule_init();
50 
52 
56 
58 
60 
63 
64 #endif /* __SCHEDULE__ */
65 
66 /* End Doxygen group
67  * @}
68  */
static volatile sched_task_pool * SCHEDULER_UNUSED_QUEUES
Definition: schedule.h:34
void schedule_aperiodic(pisr_t, HW_TYPE, hw_metadata, microseconds_t, DEADLINE_TYPE)
Definition: os.c:435
#define SCHEDULER_MAX_THREADS
Definition: schedule.h:25
DEADLINE_TYPE
void(* task_t)()
Definition: defines.h:21
void schedule(task_t, frequency_t, DEADLINE_TYPE)
Definition: os.c:386
void schedule_hash_add_int(sched_task_pool *queues, sched_task_pool *add)
sched_task * edf_get_edf_queue()
Definition: os.c:538
static sched_task SCHEDULER_TASKS[5]
Definition: schedule.h:42
int32_t microseconds_t
static sched_task * SCHEDULER_UNUSED_TASKS
Definition: schedule.h:45
void _os_choose_next_thread()
Definition: os.c:544
sched_task_pool * schedule_hash_find_int(sched_task_pool *queues, frequency_t target_frequency)
Definition: os.c:456
void schedule_init()
Definition: os.c:445
HW_TYPE
Definition: hardware.h:46
static sched_task_pool SCHEDULER_TASK_QUEUES[5]
Definition: schedule.h:31
void(* pisr_t)(notification note)
Definition: schedule.h:28
int32_t frequency_t
Definition: defines.h:24
#define NULL
Definition: defines.h:32
static volatile sched_task_pool * SCHEDULER_QUEUES
Definition: schedule.h:38