aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/rt_server.h
blob: 0e2feb6c6b0e205b6911fa3dddd467fa8d3ba518 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef __RT_SERVER_H
#define __RT_SERVER_H

#include <linux/sched.h>
#include <litmus/litmus.h>
#include <litmus/rt_domain.h>

struct rt_server;

typedef int (*need_preempt_t)(rt_domain_t *rt, struct task_struct *t);
typedef void (*server_update_t)(struct rt_server *srv);

struct rt_server {
	int sid;
	int cpu;
	struct task_struct*   	linked;
	rt_domain_t*		domain;
	int running;

	/* Does this server have a higher-priority task? */
	need_preempt_t   	need_preempt;
	/* System state has changed, so should server */
	server_update_t		update;
};

void init_rt_server(struct rt_server *server,
		    int sid, int cpu, rt_domain_t *domain,
		    need_preempt_t need_preempt,
		    server_update_t update);

#endif