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 */ 61