From d9f376087182aa679b77d2bc416ade454df5dab1 Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Tue, 22 Jan 2008 12:04:01 -0500 Subject: add set_rt_param() wrapper sporadic_task() --- include/litmus.h | 14 +++++++------- src/litmus.c | 11 ++++++++++- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/include/litmus.h b/include/litmus.h index 343aab3..0f96aa7 100644 --- a/include/litmus.h +++ b/include/litmus.h @@ -49,13 +49,6 @@ typedef struct rt_param { typedef int pid_t; /* PID of a task */ -/* X */ -#define set_param(t,p,e) do{\ - (t).is_realtime=1;\ - (t).exec_cost=(e);\ - (t).period=(p);\ - }while(0); - /* scheduler modes */ #define MODE_NON_RT 0 #define MODE_RT_RUN 1 @@ -66,6 +59,13 @@ int set_rt_task_param(pid_t pid, rt_param_t* param); int get_rt_task_param(pid_t pid, rt_param_t* param); int prepare_rt_task(pid_t pid); +#define sporadic_gobal(e, p) \ + sporadic_task(e, p, 0, RT_CLASS_SOFT) +#define sporadic_partitioned(e, p, cpu) \ + sporadic_task(e, p, cpu, RT_CLASS_SOFT) +int sporadic_task(unsigned long exec_cost, unsigned long period, + int partition, task_class_t cls); + enum { LITMUS_RESERVED_RANGE = 1024, diff --git a/src/litmus.c b/src/litmus.c index 6ca35a3..89d0f86 100644 --- a/src/litmus.c +++ b/src/litmus.c @@ -218,7 +218,16 @@ task_class_t str2class(const char* str) return -1; } - +int sporadic_task(unsigned long e, unsigned long p, + int cpu, task_class_t cls) +{ + rt_param_t param; + param.exec_cost = e; + param.period = p; + param.cpu = cpu; + param.cls = cls; + return set_rt_task_param(getpid(), ¶m); +} struct np_flag { #define RT_PREEMPTIVE 0x2050 /* = NP */ -- cgit v1.2.2