aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-07-16 20:20:52 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-08-01 02:40:25 -0400
commitb53c479a0f44b8990ce106622412a3bf54809944 (patch)
tree07934618bf23661191b514a66bf8cd49d6369ece /include
parenta6d64b9717782170ba27c16b6df8191169d92fad (diff)
New Feature: Arbitrary deadlines.2012.2
Added support for arbitrary deadlines. Constraint: Relative deadline must be >= exec cost. Use: Set relative deadline in rt_task::rdeadline. Set value to 0 to default to implicit deadlines. Limitations: PFAIR not supported by this patch. PFAIR updated to reject tasks that do not have implicit deadlines.
Diffstat (limited to 'include')
-rw-r--r--include/litmus/litmus.h13
-rw-r--r--include/litmus/rt_param.h1
2 files changed, 10 insertions, 4 deletions
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h
index aa56eeef7e7d..338245abd6ed 100644
--- a/include/litmus/litmus.h
+++ b/include/litmus/litmus.h
@@ -47,18 +47,23 @@ void litmus_exit_task(struct task_struct *tsk);
47/* Realtime utility macros */ 47/* Realtime utility macros */
48#define get_rt_flags(t) (tsk_rt(t)->flags) 48#define get_rt_flags(t) (tsk_rt(t)->flags)
49#define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) 49#define set_rt_flags(t,f) (tsk_rt(t)->flags=(f))
50#define is_priority_boosted(t) (tsk_rt(t)->priority_boosted)
51#define get_boost_start(t) (tsk_rt(t)->boost_start_time)
52
53/* task_params macros */
50#define get_exec_cost(t) (tsk_rt(t)->task_params.exec_cost) 54#define get_exec_cost(t) (tsk_rt(t)->task_params.exec_cost)
51#define get_exec_time(t) (tsk_rt(t)->job_params.exec_time)
52#define get_rt_period(t) (tsk_rt(t)->task_params.period) 55#define get_rt_period(t) (tsk_rt(t)->task_params.period)
56#define get_rt_relative_deadline(t) (tsk_rt(t)->task_params.relative_deadline)
53#define get_rt_phase(t) (tsk_rt(t)->task_params.phase) 57#define get_rt_phase(t) (tsk_rt(t)->task_params.phase)
54#define get_partition(t) (tsk_rt(t)->task_params.cpu) 58#define get_partition(t) (tsk_rt(t)->task_params.cpu)
55#define get_priority(t) (tsk_rt(t)->task_params.priority) 59#define get_priority(t) (tsk_rt(t)->task_params.priority)
60#define get_class(t) (tsk_rt(t)->task_params.cls)
61
62/* job_param macros */
63#define get_exec_time(t) (tsk_rt(t)->job_params.exec_time)
56#define get_deadline(t) (tsk_rt(t)->job_params.deadline) 64#define get_deadline(t) (tsk_rt(t)->job_params.deadline)
57#define get_release(t) (tsk_rt(t)->job_params.release) 65#define get_release(t) (tsk_rt(t)->job_params.release)
58#define get_class(t) (tsk_rt(t)->task_params.cls)
59 66
60#define is_priority_boosted(t) (tsk_rt(t)->priority_boosted)
61#define get_boost_start(t) (tsk_rt(t)->boost_start_time)
62 67
63#define is_hrt(t) \ 68#define is_hrt(t) \
64 (tsk_rt(t)->task_params.cls == RT_CLASS_HARD) 69 (tsk_rt(t)->task_params.cls == RT_CLASS_HARD)
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h
index c4669a276e6f..89ac0dda7d3d 100644
--- a/include/litmus/rt_param.h
+++ b/include/litmus/rt_param.h
@@ -56,6 +56,7 @@ typedef enum {
56struct rt_task { 56struct rt_task {
57 lt_t exec_cost; 57 lt_t exec_cost;
58 lt_t period; 58 lt_t period;
59 lt_t relative_deadline;
59 lt_t phase; 60 lt_t phase;
60 unsigned int cpu; 61 unsigned int cpu;
61 unsigned int priority; 62 unsigned int priority;