diff options
Diffstat (limited to 'include/litmus/budget.h')
-rw-r--r-- | include/litmus/budget.h | 30 |
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 | */ | ||
6 | void update_enforcement_timer(struct task_struct* t); | 12 | void update_enforcement_timer(struct task_struct* t); |
7 | 13 | ||
8 | void 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 | */ | ||
13 | void server_release(struct task_struct *t); | 26 | void 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 | */ | ||
14 | void task_release(struct task_struct *t); | 34 | void task_release(struct task_struct *t); |
15 | #endif | 35 | #endif |