Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / linux / sched / rt.h
1 #ifndef _SCHED_RT_H
2 #define _SCHED_RT_H
3
4 #include <linux/sched/prio.h>
5
6 static inline int rt_prio(int prio)
7 {
8         if (unlikely(prio < MAX_RT_PRIO))
9                 return 1;
10         return 0;
11 }
12
13 static inline int rt_task(struct task_struct *p)
14 {
15         return rt_prio(p->prio);
16 }
17
18 #ifdef CONFIG_RT_MUTEXES
19 extern int rt_mutex_getprio(struct task_struct *p);
20 extern void rt_mutex_setprio(struct task_struct *p, int prio);
21 extern int rt_mutex_get_effective_prio(struct task_struct *task, int newprio);
22 extern struct task_struct *rt_mutex_get_top_task(struct task_struct *task);
23 extern void rt_mutex_adjust_pi(struct task_struct *p);
24 static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
25 {
26         return tsk->pi_blocked_on != NULL;
27 }
28 #else
29 static inline int rt_mutex_getprio(struct task_struct *p)
30 {
31         return p->normal_prio;
32 }
33
34 static inline int rt_mutex_get_effective_prio(struct task_struct *task,
35                                               int newprio)
36 {
37         return newprio;
38 }
39
40 static inline struct task_struct *rt_mutex_get_top_task(struct task_struct *task)
41 {
42         return NULL;
43 }
44 # define rt_mutex_adjust_pi(p)          do { } while (0)
45 static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
46 {
47         return false;
48 }
49 #endif
50
51 extern void normalize_rt_tasks(void);
52
53
54 /*
55  * default timeslice is 100 msecs (used only for SCHED_RR tasks).
56  * Timeslices get refilled after they expire.
57  */
58 #define RR_TIMESLICE            (100 * HZ / 1000)
59
60 #endif /* _SCHED_RT_H */