#include <asm/alternative.h>
#include <asm/lse.h>
#include <asm/rwonce.h>
Go to the source code of this file.
◆ __HYP_SPIN_LOCK_INITIALIZER
#define __HYP_SPIN_LOCK_INITIALIZER { .__val = 0 } |
◆ __HYP_SPIN_LOCK_UNLOCKED
◆ DEFINE_HYP_SPINLOCK
◆ hyp_spin_lock_init
#define hyp_spin_lock_init |
( |
|
l | ) |
|
Value:do { \
} while (0)
#define __HYP_SPIN_LOCK_UNLOCKED
Definition at line 39 of file spinlock.h.
◆ hyp_spinlock_t
◆ hyp_assert_lock_held()
◆ hyp_spin_is_locked()
◆ hyp_spin_lock()
Definition at line 44 of file spinlock.h.
51 ARM64_LSE_ATOMIC_INSN(
53 " prfm pstl1strm, %3\n"
55 " add %w1, %w0, #(1 << 16)\n"
56 " stxr %w2, %w1, %3\n"
59 " mov %w2, #(1 << 16)\n"
60 " ldadda %w2, %w0, %3\n"
64 " eor %w1, %w0, %w0, ror #16\n"
73 " eor %w1, %w2, %w0, lsr #16\n"
77 :
"=&r" (lockval),
"=&r" (newval),
"=&r" (tmp),
"+Q" (*lock)
◆ hyp_spin_unlock()
Definition at line 82 of file spinlock.h.
87 ARM64_LSE_ATOMIC_INSN(
96 :
"=Q" (lock->owner),
"=&r" (tmp)