#ifndef __ASM_PREEMPT_H
#define __ASM_PREEMPT_H
#include <asm/rmwcc.h>
#include <asm/percpu.h>
#include <asm/current.h>
#include <linux/static_call_types.h>
#define PREEMPT_NEED_RESCHED …
#define PREEMPT_ENABLED …
static __always_inline int preempt_count(void)
{ … }
static __always_inline void preempt_count_set(int pc)
{ … }
#define init_task_preempt_count(p) …
#define init_idle_preempt_count(p, cpu) …
static __always_inline void set_preempt_need_resched(void)
{ … }
static __always_inline void clear_preempt_need_resched(void)
{ … }
static __always_inline bool test_preempt_need_resched(void)
{ … }
static __always_inline void __preempt_count_add(int val)
{ … }
static __always_inline void __preempt_count_sub(int val)
{ … }
static __always_inline bool __preempt_count_dec_and_test(void)
{ … }
static __always_inline bool should_resched(int preempt_offset)
{ … }
#ifdef CONFIG_PREEMPTION
extern asmlinkage void preempt_schedule(void);
extern asmlinkage void preempt_schedule_thunk(void);
#define preempt_schedule_dynamic_enabled …
#define preempt_schedule_dynamic_disabled …
extern asmlinkage void preempt_schedule_notrace(void);
extern asmlinkage void preempt_schedule_notrace_thunk(void);
#define preempt_schedule_notrace_dynamic_enabled …
#define preempt_schedule_notrace_dynamic_disabled …
#ifdef CONFIG_PREEMPT_DYNAMIC
DECLARE_STATIC_CALL(preempt_schedule, preempt_schedule_dynamic_enabled);
#define __preempt_schedule() …
DECLARE_STATIC_CALL(preempt_schedule_notrace, preempt_schedule_notrace_dynamic_enabled);
#define __preempt_schedule_notrace() …
#else
#define __preempt_schedule …
#define __preempt_schedule_notrace …
#endif
#endif
#endif