From fccb957780cf9685539b1d0717a5193248b30e48 Mon Sep 17 00:00:00 2001 From: Glenn Elliott Date: Tue, 12 Mar 2013 13:02:09 -0400 Subject: Add init_rt_task_param(). Adds init_rt_task_param(). Facilitates setting up default real-time task attributes that cannot be set by memset(0). --- include/litmus.h | 2 ++ src/litmus.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/include/litmus.h b/include/litmus.h index 335d01b..429e614 100644 --- a/include/litmus.h +++ b/include/litmus.h @@ -18,6 +18,8 @@ extern "C" { #include "migration.h" + +void init_rt_task_param(struct rt_task* param); int set_rt_task_param(pid_t pid, struct rt_task* param); int get_rt_task_param(pid_t pid, struct rt_task* param); diff --git a/src/litmus.c b/src/litmus.c index 1110bd4..09f9dc6 100644 --- a/src/litmus.c +++ b/src/litmus.c @@ -77,6 +77,34 @@ void show_rt_param(struct rt_task* tp) tp->exec_cost, tp->period, tp->cpu); } +void init_rt_task_param(struct rt_task* tp) +{ + /* Defaults: + * - implicit deadline (t->relative_deadline == 0) + * - phase = 0 + * - class = RT_CLASS_SOFT + * - budget policy = NO_ENFORCEMENT + * - fixed priority = LITMUS_LOWEST_PRIORITY + * - release policy = SPORADIC + * - cpu assignment = 0 + * + * User must still set the following fields to non-zero values: + * - tp->exec_cost + * - tp->period + * + * User must set tp->cpu to the appropriate value for non-global + * schedulers. For clusters, set tp->cpu to the first CPU in the + * assigned cluster. + */ + + memset(tp, 0, sizeof(*tp)); + + tp->cls = RT_CLASS_SOFT; + tp->priority = LITMUS_LOWEST_PRIORITY; + tp->budget_policy = NO_ENFORCEMENT; + tp->release_policy = SPORADIC; +} + task_class_t str2class(const char* str) { if (!strcmp(str, "hrt")) -- cgit v1.2.2