hc
2024-03-26 e0728245c89800c2038c23308f2d88969d5b41c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* SPDX-License-Identifier: GPL-2.0 */
 
#define CPUPRI_NR_PRIORITIES    (MAX_RT_PRIO + 2)
 
#define CPUPRI_INVALID        -1
#define CPUPRI_IDLE         0
#define CPUPRI_NORMAL         1
/* values 2-101 are RT priorities 0-99 */
 
struct cpupri_vec {
   atomic_t        count;
   cpumask_var_t        mask;
};
 
struct cpupri {
   struct cpupri_vec    pri_to_cpu[CPUPRI_NR_PRIORITIES];
   int            *cpu_to_pri;
};
 
#ifdef CONFIG_SMP
int  cpupri_find(struct cpupri *cp, struct task_struct *p,
        struct cpumask *lowest_mask);
int  cpupri_find_fitness(struct cpupri *cp, struct task_struct *p,
            struct cpumask *lowest_mask,
            bool (*fitness_fn)(struct task_struct *p, int cpu));
void cpupri_set(struct cpupri *cp, int cpu, int pri);
int  cpupri_init(struct cpupri *cp);
void cpupri_cleanup(struct cpupri *cp);
#endif