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_check_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_check_prio(struct task_struct *task, int newprio) 35 { 36 return 0; 37 } 38 39 static inline struct task_struct *rt_mutex_get_top_task(struct task_struct *task) 40 { 41 return NULL; 42 } 43 # define rt_mutex_adjust_pi(p) do { } while (0) 44 static inline bool tsk_is_pi_blocked(struct task_struct *tsk) 45 { 46 return false; 47 } 48 #endif 49 50 extern void normalize_rt_tasks(void); 51 52 53 /* 54 * default timeslice is 100 msecs (used only for SCHED_RR tasks). 55 * Timeslices get refilled after they expire. 56 */ 57 #define RR_TIMESLICE (100 * HZ / 1000) 58 59 #endif /* _SCHED_RT_H */ 60