aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/budget.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/litmus/budget.h')
-rw-r--r--include/litmus/budget.h30
1 files changed, 25 insertions, 5 deletions
diff --git a/include/litmus/budget.h b/include/litmus/budget.h
index 062df818de45..ff18d89e8630 100644
--- a/include/litmus/budget.h
+++ b/include/litmus/budget.h
@@ -1,15 +1,35 @@
1#ifndef _LITMUS_BUDGET_H_ 1#ifndef _LITMUS_BUDGET_H_
2#define _LITMUS_BUDGET_H_ 2#define _LITMUS_BUDGET_H_
3 3
4/* Update the per-processor enforcement timer (arm/reproram/cancel) for 4/**
5 * the next task. */ 5 * update_enforcement_timer() - Update per-processor enforcement timer for
6 * the next scheduled task.
7 *
8 * If @t is not NULL and has a precisely enforced budget, the timer will be
9 * armed to trigger a reschedule when the budget is exhausted. Otherwise,
10 * the timer will be cancelled.
11*/
6void update_enforcement_timer(struct task_struct* t); 12void update_enforcement_timer(struct task_struct* t);
7 13
8void prepare_for_next_server(struct task_struct* t,int forced); 14/* True if a task's server has progressed farther than the task
9 15 * itself. This happens when budget enforcement has caused a task to be
10#define job_behind(t)\ 16 * booted off until the next period.
17 */
18#define behind_server(t)\
11 (lt_before((t)->rt_param.job_params.real_release, get_release(t))) 19 (lt_before((t)->rt_param.job_params.real_release, get_release(t)))
12 20
21/**
22 * server_release() - Prepare the task server parameters for the next period.
23 * The server for @t is what is actually executed from the schedulers
24 * perspective.
25 */
13void server_release(struct task_struct *t); 26void server_release(struct task_struct *t);
27
28/**
29 * task_release() - Prepare actual task parameters for the next period.
30 * The actual task parameters for @t, real_deadline and real_release, are
31 * the deadline and release from the tasks perspective. We only record these
32 * so that we can write them to feather trace.
33 */
14void task_release(struct task_struct *t); 34void task_release(struct task_struct *t);
15#endif 35#endif