aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/rt_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'litmus/rt_server.c')
-rw-r--r--litmus/rt_server.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/litmus/rt_server.c b/litmus/rt_server.c
new file mode 100644
index 00000000000..818588a3d31
--- /dev/null
+++ b/litmus/rt_server.c
@@ -0,0 +1,34 @@
1#include <litmus/rt_server.h>
2
3
4static struct task_struct* default_server_take(struct rt_server *srv)
5{
6 return __take_ready(srv->domain);
7}
8
9static void default_server_update(struct rt_server *srv)
10{
11}
12
13void init_rt_server(struct rt_server *server,
14 int sid, int cpu, rt_domain_t *domain,
15 need_preempt_t need_preempt,
16 server_requeue_t requeue,
17 server_update_t update,
18 server_take_t take)
19{
20 if (!need_preempt || !requeue)
21 BUG_ON(1);
22
23 server->need_preempt = need_preempt;
24 server->requeue = requeue;
25
26 server->update = (update) ? update : default_server_update;
27 server->take = (take) ? take : default_server_take;
28
29 server->sid = sid;
30 server->cpu = cpu;
31 server->linked = NULL;
32 server->domain = domain;
33 server->running = 0;
34}