34#ifndef _LOS_SPINLOCK_H
35#define _LOS_SPINLOCK_H
41#include "arch/spinlock.h"
47#ifdef LOSCFG_KERNEL_SPINDEP
48#define OS_SPINLOCK_FROM_SPINLOCK_CHECK(ptr) LOS_DL_LIST_ENTRY(ptr, SPIN_LOCK_S, lockCheck)
49#define SPIN_LOCK_INITIALIZER(lockName) \
50{0U, {LOCK_SPIN, 0, #lockName, 0xFFFFFFFF, NULL}}
52#define SPIN_LOCK_INITIALIZER(lockName) \
72#define SPIN_LOCK_INIT(lock) SPIN_LOCK_S lock = SPIN_LOCK_INITIALIZER(lock)
80#ifdef LOSCFG_KERNEL_SPINDEP
85#ifdef LOSCFG_KERNEL_SMP
190 ArchSpinUnlock(&lock->
rawLock);
224 ArchSpinUnlock(&lock->
rawLock);
260 *intSave = LOS_IntLock();
290 LOS_SpinUnlock(lock);
291 LOS_IntRestore(intSave);
380 *intSave = LOS_IntLock();
386 LOS_IntRestore(intSave);
#define STATIC
Definition common_def.h:57
#define INLINE
Definition common_def.h:65
void LOS_TaskUnlockNoSched(void)
Unlock the task scheduling and no scheduling is generated.
void LOS_TaskUnlock(void)
Unlock the task scheduling.
void LOS_TaskLock(void)
Lock the task scheduling.
#define LITE_OS_SEC_ALW_INLINE
Definition los_builddef.h:46
#define LOCKDEP_CHECK_INIT(lock)
Definition los_lockdep.h:129
#define LOCKDEP_CHECK_IN(lock)
Definition los_lockdep.h:130
#define LOCKDEP_CHECK_OUT(lock)
Definition los_lockdep.h:132
#define LOCKDEP_RECORD(lock)
Definition los_lockdep.h:131
signed int INT32
Definition los_typedef.h:55
#define VOID
Definition los_typedef.h:88
#define LOS_OK
Definition los_typedef.h:122
#define TRUE
Definition los_typedef.h:98
unsigned int UINT32
Definition los_typedef.h:52
size_t BOOL
Definition los_typedef.h:83
Definition los_lockdep.h:62
Definition los_spinlock.h:78
size_t rawLock
Definition los_spinlock.h:79