#ifndef __UTIL_H
#define __UTIL_H
extern const volatile u64 nr_llcs;
extern volatile u64 nr_cpus_onln;
extern const volatile u32 cpu_sibling[LAVD_CPU_ID_MAX];
extern volatile bool reinit_cpumask_for_performance;
extern volatile bool no_preemption;
extern volatile bool no_core_compaction;
extern volatile bool no_freq_scaling;
extern const volatile bool no_wake_sync;
extern const volatile bool no_slice_boost;
extern const volatile bool per_cpu_dsq;
extern const volatile bool enable_cpu_bw;
extern const volatile bool is_autopilot_on;
extern const volatile u8 verbose;
extern struct user_exit_info uei;
extern char uei_dump[];
extern const volatile u32 uei_dump_len;
u64 calc_avg_freq(u64 old_freq, u64 interval);
u32 calc_avg32(u32 old_val, u32 new_val);
bool is_kernel_task(struct task_struct *p);
bool is_kernel_worker(struct task_struct *p);
bool is_ksoftirqd(struct task_struct *p);
bool is_pinned(const struct task_struct *p);
bool use_full_cpus(void);
void set_on_core_type(task_ctx __arg_arena *taskc, const struct cpumask *cpumask);
bool prob_x_out_of_y(u32 x, u32 y);
u32 get_primary_cpu(u32 cpu);
static inline bool rt_or_dl_task(struct task_struct *p)
{
return unlikely(p->prio < MAX_RT_PRIO);
}
#endif