1 #ifndef _LINUX_CPUPRI_H 2 #define _LINUX_CPUPRI_H 3 4 #include <linux/sched.h> 5 6 #define CPUPRI_NR_PRIORITIES (MAX_RT_PRIO + 2) 7 #define CPUPRI_NR_PRI_WORDS BITS_TO_LONGS(CPUPRI_NR_PRIORITIES) 8 9 #define CPUPRI_INVALID -1 10 #define CPUPRI_IDLE 0 11 #define CPUPRI_NORMAL 1 12 /* values 2-101 are RT priorities 0-99 */ 13 14 struct cpupri_vec { 15 spinlock_t lock; 16 int count; 17 cpumask_var_t mask; 18 }; 19 20 struct cpupri { 21 struct cpupri_vec pri_to_cpu[CPUPRI_NR_PRIORITIES]; 22 long pri_active[CPUPRI_NR_PRI_WORDS]; 23 int cpu_to_pri[NR_CPUS]; 24 }; 25 26 #ifdef CONFIG_SMP 27 int cpupri_find(struct cpupri *cp, 28 struct task_struct *p, cpumask_t *lowest_mask); 29 void cpupri_set(struct cpupri *cp, int cpu, int pri); 30 int cpupri_init(struct cpupri *cp, bool bootmem); 31 void cpupri_cleanup(struct cpupri *cp); 32 #else 33 #define cpupri_set(cp, cpu, pri) do { } while (0) 34 #define cpupri_init() do { } while (0) 35 #endif 36 37 #endif /* _LINUX_CPUPRI_H */ 38