aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/rt_server.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/litmus/rt_server.h')
-rw-r--r--include/litmus/rt_server.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/include/litmus/rt_server.h b/include/litmus/rt_server.h
new file mode 100644
index 000000000000..0f3147707a3b
--- /dev/null
+++ b/include/litmus/rt_server.h
@@ -0,0 +1,39 @@
1#ifndef __RT_SERVER_H
2#define __RT_SERVER_H
3
4#include <linux/sched.h>
5#include <litmus/litmus.h>
6#include <litmus/rt_domain.h>
7
8struct rt_server;
9
10typedef int (*need_preempt_t)(rt_domain_t *rt, struct task_struct *t);
11typedef void (*server_update_t)(struct rt_server *srv);
12typedef void (*server_requeue_t)(struct rt_server *srv, struct task_struct *t);
13typedef struct task_struct* (*server_take_t)(struct rt_server *srv);
14
15struct rt_server {
16 int sid;
17 int cpu;
18 struct task_struct* linked;
19 rt_domain_t* domain;
20 int running;
21
22 /* Does this server have a higher-priority task? */
23 need_preempt_t need_preempt;
24 /* System state has changed, so should server */
25 server_update_t update;
26 /* Requeue task in domain */
27 server_requeue_t requeue;
28 /* Take next task from domain */
29 server_take_t take;
30};
31
32void init_rt_server(struct rt_server *server,
33 int sid, int cpu, rt_domain_t *domain,
34 need_preempt_t need_preempt,
35 server_requeue_t requeue,
36 server_update_t update,
37 server_take_t take);
38
39#endif