paravirt-spinlocks.c 657 字节
Newer Older
1 2 3 4 5 6 7 8 9
/*
 * Split spinlock implementation out into its own file, so it can be
 * compiled in a FTRACE-compatible way.
 */
#include <linux/spinlock.h>
#include <linux/module.h>

#include <asm/paravirt.h>

10
static inline void
11
default_spin_lock_flags(arch_spinlock_t *lock, unsigned long flags)
12
{
13
	arch_spin_lock(lock);
14 15
}

16 17 18 19 20 21
struct pv_lock_ops pv_lock_ops = {
#ifdef CONFIG_SMP
	.spin_is_locked = __ticket_spin_is_locked,
	.spin_is_contended = __ticket_spin_is_contended,

	.spin_lock = __ticket_spin_lock,
22
	.spin_lock_flags = default_spin_lock_flags,
23 24 25 26
	.spin_trylock = __ticket_spin_trylock,
	.spin_unlock = __ticket_spin_unlock,
#endif
};
27
EXPORT_SYMBOL(pv_lock_ops);
28