2013-02-07 09:47:07 -06:00
|
|
|
#ifndef _SCHED_RT_H
|
|
|
|
|
#define _SCHED_RT_H
|
|
|
|
|
|
2014-01-27 17:15:37 -05:00
|
|
|
#include <linux/sched/prio.h>
|
2013-02-07 09:47:07 -06:00
|
|
|
|
|
|
|
|
static inline int rt_prio(int prio)
|
|
|
|
|
{
|
|
|
|
|
if (unlikely(prio < MAX_RT_PRIO))
|
|
|
|
|
return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline int rt_task(struct task_struct *p)
|
|
|
|
|
{
|
|
|
|
|
return rt_prio(p->prio);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_RT_MUTEXES
|
|
|
|
|
extern int rt_mutex_getprio(struct task_struct *p);
|
|
|
|
|
extern void rt_mutex_setprio(struct task_struct *p, int prio);
|
2015-05-05 19:49:49 +02:00
|
|
|
extern int rt_mutex_get_effective_prio(struct task_struct *task, int newprio);
|
2013-11-07 14:43:44 +01:00
|
|
|
extern struct task_struct *rt_mutex_get_top_task(struct task_struct *task);
|
2013-02-07 09:47:07 -06:00
|
|
|
extern void rt_mutex_adjust_pi(struct task_struct *p);
|
|
|
|
|
static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
|
|
|
|
|
{
|
|
|
|
|
return tsk->pi_blocked_on != NULL;
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
static inline int rt_mutex_getprio(struct task_struct *p)
|
|
|
|
|
{
|
|
|
|
|
return p->normal_prio;
|
|
|
|
|
}
|
2014-02-07 20:58:42 +01:00
|
|
|
|
2015-05-05 19:49:49 +02:00
|
|
|
static inline int rt_mutex_get_effective_prio(struct task_struct *task,
|
|
|
|
|
int newprio)
|
2014-02-07 20:58:42 +01:00
|
|
|
{
|
2015-05-05 19:49:49 +02:00
|
|
|
return newprio;
|
2014-02-07 20:58:42 +01:00
|
|
|
}
|
|
|
|
|
|
2013-11-07 14:43:44 +01:00
|
|
|
static inline struct task_struct *rt_mutex_get_top_task(struct task_struct *task)
|
|
|
|
|
{
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
2013-02-07 09:47:07 -06:00
|
|
|
# define rt_mutex_adjust_pi(p) do { } while (0)
|
|
|
|
|
static inline bool tsk_is_pi_blocked(struct task_struct *tsk)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
extern void normalize_rt_tasks(void);
|
|
|
|
|
|
|
|
|
|
|
2013-02-22 09:20:11 -08:00
|
|
|
/*
|
|
|
|
|
* default timeslice is 100 msecs (used only for SCHED_RR tasks).
|
|
|
|
|
* Timeslices get refilled after they expire.
|
|
|
|
|
*/
|
|
|
|
|
#define RR_TIMESLICE (100 * HZ / 1000)
|
|
|
|
|
|
2013-02-07 09:47:07 -06:00
|
|
|
#endif /* _SCHED_RT_H */
|