#ifndef _ASM_X86_QSPINLOCK_H
#define _ASM_X86_QSPINLOCK_H
#include <linux/jump_label.h>
#include <asm/cpufeature.h>
#include <asm-generic/qspinlock_types.h>
#include <asm/paravirt.h>
#include <asm/rmwcc.h>
#define _Q_PENDING_LOOPS …
#define queued_fetch_set_pending_acquire …
static __always_inline u32 queued_fetch_set_pending_acquire(struct qspinlock *lock)
{ … }
#ifdef CONFIG_PARAVIRT_SPINLOCKS
extern void native_queued_spin_lock_slowpath(struct qspinlock *lock, u32 val);
extern void __pv_init_lock_hash(void);
extern void __pv_queued_spin_lock_slowpath(struct qspinlock *lock, u32 val);
extern void __raw_callee_save___pv_queued_spin_unlock(struct qspinlock *lock);
extern bool nopvspin;
#define queued_spin_unlock …
static inline void native_queued_spin_unlock(struct qspinlock *lock)
{ … }
static inline void queued_spin_lock_slowpath(struct qspinlock *lock, u32 val)
{ … }
static inline void queued_spin_unlock(struct qspinlock *lock)
{ … }
#define vcpu_is_preempted …
static inline bool vcpu_is_preempted(long cpu)
{ … }
#endif
#ifdef CONFIG_PARAVIRT
DECLARE_STATIC_KEY_FALSE(virt_spin_lock_key);
#define virt_spin_lock …
static inline bool virt_spin_lock(struct qspinlock *lock)
{ … }
#endif
#include <asm-generic/qspinlock.h>
#endif