diff options
Diffstat (limited to 'litmus/rt_server.c')
-rw-r--r-- | litmus/rt_server.c | 34 |
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 | |||
4 | static struct task_struct* default_server_take(struct rt_server *srv) | ||
5 | { | ||
6 | return __take_ready(srv->domain); | ||
7 | } | ||
8 | |||
9 | static void default_server_update(struct rt_server *srv) | ||
10 | { | ||
11 | } | ||
12 | |||
13 | void 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 | } | ||