VSF Documented
Macros | Typedefs
spinlock.h File Reference
#include "hal/arch/vsf_arch.h"

Go to the source code of this file.

Macros

#define SPIN_LOCK_INIT()   (0)
 
#define spin_lock_init(lock)   do { *lock = 0; } while(0)
 
#define __spin_lock(lock)   do { *lock = 1; } while (0)
 
#define __spin_unlock(lock)   do { *lock = 0; } while (0)
 
#define spin_lock(lock)   do { vsf_protect_t orig = vsf_protect_int(); __spin_lock(lock); vsf_unprotect_int(orig); } while (0)
 
#define spin_unlock(lock)   do { vsf_protect_t orig = vsf_protect_int(); __spin_unlock(lock); vsf_unprotect_int(orig); } while (0)
 
#define spin_trylock(lock)   (spin_lock(lock), 1)
 
#define spin_lock_irq(lock)   do { vsf_disable_interrupt(); __spin_lock(lock); } while(0)
 
#define spin_unlock_irq(lock)   do { __spin_unlock(lock); vsf_enable_interrupt(); } while(0)
 
#define spin_lock_irqsave(lock, flags)   do { flags = vsf_protect_int(); __spin_lock(lock); } while(0)
 
#define spin_unlock_irqrestore(lock, flags)   do { __spin_unlock(lock); vsf_unprotect_int(flags); } while(0)
 

Typedefs

typedef int spinlock_t
 

Macro Definition Documentation

◆ SPIN_LOCK_INIT

#define SPIN_LOCK_INIT ( )    (0)

◆ spin_lock_init

#define spin_lock_init (   lock)    do { *lock = 0; } while(0)

◆ __spin_lock

#define __spin_lock (   lock)    do { *lock = 1; } while (0)

◆ __spin_unlock

#define __spin_unlock (   lock)    do { *lock = 0; } while (0)

◆ spin_lock

#define spin_lock (   lock)    do { vsf_protect_t orig = vsf_protect_int(); __spin_lock(lock); vsf_unprotect_int(orig); } while (0)

◆ spin_unlock

#define spin_unlock (   lock)    do { vsf_protect_t orig = vsf_protect_int(); __spin_unlock(lock); vsf_unprotect_int(orig); } while (0)

◆ spin_trylock

#define spin_trylock (   lock)    (spin_lock(lock), 1)

◆ spin_lock_irq

#define spin_lock_irq (   lock)    do { vsf_disable_interrupt(); __spin_lock(lock); } while(0)

◆ spin_unlock_irq

#define spin_unlock_irq (   lock)    do { __spin_unlock(lock); vsf_enable_interrupt(); } while(0)

◆ spin_lock_irqsave

#define spin_lock_irqsave (   lock,
  flags 
)    do { flags = vsf_protect_int(); __spin_lock(lock); } while(0)

◆ spin_unlock_irqrestore

#define spin_unlock_irqrestore (   lock,
  flags 
)    do { __spin_unlock(lock); vsf_unprotect_int(flags); } while(0)

Typedef Documentation

◆ spinlock_t

typedef int spinlock_t