Skip to content

Raw Spinlock

include/sync/raw_spinlock.h View source View on GitHub
struct raw_spinlock_high_guard (2 fields) source
§ struct raw_spinlock *lock
§ bool irqs_were_enabled
void raw_spinlock_init(struct raw_spinlock *lock)
source
cc_warn_unused_result bool raw_spin_trylock(struct raw_spinlock *lock)
source
void raw_spin_lock(struct raw_spinlock *lock)
source
void raw_spin_unlock(struct raw_spinlock *lock)
source
cc_warn_unused_result bool raw_spin_lock_high(struct raw_spinlock *lock)
source

whether interrupts were enabled on entry

void raw_spin_unlock_irq_restore(
    struct raw_spinlock *lock,
    bool irqs_were_enabled
)
source
void raw_spin_guard_assume(struct raw_spinlock *lock)
source
void raw_spin_guard_exit(struct raw_spinlock **lock)
source
struct raw_spinlock * raw_spin_guard_enter(struct raw_spinlock *lock)
source
void raw_spin_high_guard_exit(struct raw_spinlock_high_guard *g)
source
struct raw_spinlock_high_guard raw_spin_high_guard_enter(struct raw_spinlock *lock)
source
#define RAW_SPINLOCK_INIT ((struct raw_spinlock) {.state = ATOMIC_VAR_INIT(0)})
source
#define RAW_SPINLOCK_DEFINE(id)
source
Expansion
#define RAW_SPINLOCK_DEFINE(id) struct raw_spinlock id = RAW_SPINLOCK_INIT
#define raw_spin_guard(lock_)
source
Expansion
#define raw_spin_guard(lock_) \
    cc_cleanup(raw_spin_guard_exit) struct raw_spinlock *PP_CONCAT( \
        raw_spin_guard_, __COUNTER__) = \
        (raw_spin_guard_assume(lock_), raw_spin_guard_enter(lock_))
#define raw_spin_guard_high(lock_)
source
Expansion
#define raw_spin_guard_high(lock_) \
    cc_cleanup(raw_spin_high_guard_exit) struct raw_spinlock_high_guard \
    PP_CONCAT(raw_spin_guard_high_, __COUNTER__) = \
        (raw_spin_guard_assume(lock_), raw_spin_high_guard_enter(lock_))