00001 #ifndef _LINUX_CPUPRI_H 00002 #define _LINUX_CPUPRI_H 00003 00004 #include <linux/sched.h> 00005 00006 #define CPUPRI_NR_PRIORITIES (MAX_RT_PRIO + 2) 00007 #define CPUPRI_NR_PRI_WORDS BITS_TO_LONGS(CPUPRI_NR_PRIORITIES) 00008 00009 #define CPUPRI_INVALID -1 00010 #define CPUPRI_IDLE 0 00011 #define CPUPRI_NORMAL 1 00012 /* values 2-101 are RT priorities 0-99 */ 00013 00014 struct cpupri_vec { 00015 spinlock_t lock; 00016 int count; 00017 cpumask_var_t mask; 00018 }; 00019 00020 struct cpupri { 00021 struct cpupri_vec pri_to_cpu[CPUPRI_NR_PRIORITIES]; 00022 long pri_active[CPUPRI_NR_PRI_WORDS]; 00023 int cpu_to_pri[NR_CPUS]; 00024 }; 00025 00026 #ifdef CONFIG_SMP 00027 int cpupri_find(struct cpupri *cp, 00028 struct task_struct *p, cpumask_t *lowest_mask); 00029 void cpupri_set(struct cpupri *cp, int cpu, int pri); 00030 int cpupri_init(struct cpupri *cp, bool bootmem); 00031 void cpupri_cleanup(struct cpupri *cp); 00032 #else 00033 #define cpupri_set(cp, cpu, pri) do { } while (0) 00034 #define cpupri_init() do { } while (0) 00035 #endif 00036 00037 #endif /* _LINUX_CPUPRI_H */
1.5.6