RTEMS
Classes | Macros | Functions
smplock.h File Reference

SMP Lock API. More...

#include <rtems/score/cpuopts.h>
#include <rtems/score/smplockstats.h>
#include <rtems/score/smplockticket.h>
#include <rtems/score/isrlevel.h>

Go to the source code of this file.

Classes

struct  SMP_lock_Control
 SMP lock control. More...
 
struct  SMP_lock_Context
 Local SMP lock context for acquire and release pairs. More...
 

Macros

#define SMP_LOCK_INITIALIZER(name)   { SMP_TICKET_LOCK_INITIALIZER }
 SMP lock control initializer for static initialization.
 
#define _SMP_lock_Initialize(lock, name)   _SMP_lock_Initialize_inline( lock, name )
 Initializes an SMP lock. More...
 
#define _SMP_lock_Destroy(lock)   _SMP_lock_Destroy_inline( lock )
 Destroys an SMP lock. More...
 
#define _SMP_lock_Release(lock, context)   _SMP_lock_Release_inline( lock, context )
 Releases an SMP lock. More...
 
#define _SMP_lock_Release_and_ISR_enable(lock, context)   _SMP_lock_Release_and_ISR_enable_inline( lock, context )
 Releases the SMP lock and enables interrupts. More...
 

Functions

static void _SMP_lock_Initialize_inline (SMP_lock_Control *lock, const char *name)
 Initializes the SMP lock with the given name. More...
 
static void _SMP_lock_Destroy_inline (SMP_lock_Control *lock)
 Destroys the SMP lock. More...
 
static void _SMP_lock_Set_name (SMP_lock_Control *lock, const char *name)
 Sets the name of an SMP lock. More...
 
static void _SMP_lock_Acquire_inline (SMP_lock_Control *lock, SMP_lock_Context *context)
 Gets my index. More...
 
void _SMP_lock_Acquire (SMP_lock_Control *lock, SMP_lock_Context *context)
 Acquires an SMP lock. More...
 
static void _SMP_lock_Release_inline (SMP_lock_Control *lock, SMP_lock_Context *context)
 Releases an SMP lock. More...
 
static void _SMP_lock_ISR_disable_and_acquire_inline (SMP_lock_Control *lock, SMP_lock_Context *context)
 Disables interrupts and acquires the SMP lock. More...
 
void _SMP_lock_ISR_disable_and_acquire (SMP_lock_Control *lock, SMP_lock_Context *context)
 Disables interrupts and acquires the SMP lock. More...
 
static void _SMP_lock_Release_and_ISR_enable_inline (SMP_lock_Control *lock, SMP_lock_Context *context)
 Releases the SMP lock and enables interrupts. More...
 

Detailed Description

SMP Lock API.

Definition in file smplock.h.