32#ifndef _LOS_SPINLOCK_H
33#define _LOS_SPINLOCK_H
52#ifdef LOSCFG_KERNEL_SMP
59#ifdef LOSCFG_KERNEL_SMP_LOCKDEP
60#define LOCKDEP_CHECK_IN(lock) OsLockDepCheckIn(lock)
61#define LOCKDEP_RECORD(lock) OsLockDepRecord(lock)
62#define LOCKDEP_CHECK_OUT(lock) OsLockDepCheckOut(lock)
63#define LOCKDEP_CLEAR_LOCKS() OsLockdepClearSpinlocks()
65#define LOCKDEP_CHECK_IN(lock)
66#define LOCKDEP_RECORD(lock)
67#define LOCKDEP_CHECK_OUT(lock)
68#define LOCKDEP_CLEAR_LOCKS()
71#ifdef LOSCFG_KERNEL_SMP
72#define SPINLOCK_OWNER_INIT NULL
74#define SPIN_LOCK_INITIALIZER(lockName) \
77 .cpuid = (UINT32)(-1), \
78 .owner = SPINLOCK_OWNER_INIT, \
212#define SPIN_LOCK_INITIALIZER(lockName) \
262#define SPIN_LOCK_INIT(lock) SPIN_LOCK_S lock = SPIN_LOCK_INITIALIZER(lock)
STATIC INLINE VOID LOS_IntRestore(UINT32 intSave)
Restore interrupts. | 恢复到使用LOS_IntLock关闭所有中断之前的状态
STATIC INLINE UINT32 LOS_IntLock(VOID)
Disable all interrupts. | 关闭当前处理器所有中断响应
INT32 LOS_SpinTrylock(SPIN_LOCK_S *lock)
Trying lock the spinlock.
struct Spinlock SPIN_LOCK_S
VOID LOS_SpinLock(SPIN_LOCK_S *lock)
Lock the spinlock.
VOID LOS_SpinInit(SPIN_LOCK_S *lock)
Spinlock initialization.
VOID LOS_SpinUnlockRestore(SPIN_LOCK_S *lock, UINT32 intSave)
Unlock the spinlock and restore interrupt flag.
BOOL LOS_SpinHeld(const SPIN_LOCK_S *lock)
Check if holding the spinlock.
VOID ArchSpinLock(size_t *lock)
VOID LOS_SpinUnlock(SPIN_LOCK_S *lock)
Unlock the spinlock.
VOID ArchSpinUnlock(size_t *lock)
VOID LOS_SpinLockSave(SPIN_LOCK_S *lock, UINT32 *intSave)
Lock the spinlock and disable all interrupts.
INT32 ArchSpinTrylock(size_t *lock)