aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus.h
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-02-03 01:09:48 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-02-03 01:09:48 -0500
commit2d507260ee723f8302c5c97a9bda1cf00f30ec99 (patch)
tree033231fa56c53c67916cbc1f1a05d9560ef1d4ab /include/litmus.h
parent526afdfb333ca29170fd210b08860ac2a4c141ed (diff)
many changes
- use declarations from kernel - get rid of stuipd system call macros
Diffstat (limited to 'include/litmus.h')
-rw-r--r--include/litmus.h36
1 files changed, 7 insertions, 29 deletions
diff --git a/include/litmus.h b/include/litmus.h
index 8918ae9..cf39f80 100644
--- a/include/litmus.h
+++ b/include/litmus.h
@@ -1,41 +1,16 @@
1#ifndef LITMUS_H 1#ifndef LITMUS_H
2#define LITMUS_H 2#define LITMUS_H
3 3
4#include <linux/rt_param.h>
4#include <sys/types.h> 5#include <sys/types.h>
5 6
6/* A real-time program. */
7typedef int (*rt_fn_t)(void*);
8
9/* different types of clients */
10typedef enum {
11 RT_CLASS_HARD,
12 RT_CLASS_SOFT,
13 RT_CLASS_BEST_EFFORT
14} task_class_t;
15
16/* Task RT params for schedulers */
17/* RT task parameters for scheduling extensions
18* These parameters are inherited during clone and therefore must
19* be explicitly set up before the task set is launched.
20*/
21typedef struct rt_param {
22 /* Execution cost */
23 unsigned long exec_cost;
24 /* Period */
25 unsigned long period;
26 /* Partition */
27 unsigned int cpu;
28 /* type of task */
29 task_class_t cls;
30} rt_param_t;
31
32typedef int pid_t; /* PID of a task */ 7typedef int pid_t; /* PID of a task */
33 8
34/* obtain the PID of a thread */ 9/* obtain the PID of a thread */
35pid_t gettid(void); 10pid_t gettid(void);
36 11
37int set_rt_task_param(pid_t pid, rt_param_t* param); 12int set_rt_task_param(pid_t pid, struct rt_task* param);
38int get_rt_task_param(pid_t pid, rt_param_t* param); 13int get_rt_task_param(pid_t pid, struct rt_task* param);
39 14
40/* setup helper */ 15/* setup helper */
41int sporadic_task(unsigned long exec_cost, unsigned long period, 16int sporadic_task(unsigned long exec_cost, unsigned long period,
@@ -77,6 +52,9 @@ int init_litmus(void);
77int init_rt_thread(void); 52int init_rt_thread(void);
78void exit_litmus(void); 53void exit_litmus(void);
79 54
55/* A real-time program. */
56typedef int (*rt_fn_t)(void*);
57
80int create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, int period); 58int create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, int period);
81int __create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet, 59int __create_rt_task(rt_fn_t rt_prog, void *arg, int cpu, int wcet,
82 int period, task_class_t cls); 60 int period, task_class_t cls);
@@ -88,7 +66,7 @@ enum rt_task_mode_t {
88}; 66};
89int task_mode(int target_mode); 67int task_mode(int target_mode);
90 68
91void show_rt_param(rt_param_t* tp); 69void show_rt_param(struct rt_task* tp);
92task_class_t str2class(const char* str); 70task_class_t str2class(const char* str);
93 71
94/* non-preemptive section support */ 72/* non-preemptive section support */