FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
lock.h File Reference
+ Include dependency graph for lock.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  clib_spinlock_t
 
struct  clib_rw_lock_
 

Macros

#define CLIB_PAUSE()   __builtin_ia32_pause ()
 
#define CLIB_LOCK_DBG(_p)
 
#define CLIB_LOCK_DBG_CLEAR(_p)
 
#define CLIB_SPINLOCK_IS_LOCKED(_p)   (*(_p))->lock
 
#define CLIB_SPINLOCK_ASSERT_LOCKED(_p)   ASSERT(CLIB_SPINLOCK_IS_LOCKED((_p)))
 

Typedefs

typedef struct clib_rw_lock_clib_rwlock_t
 

Functions

static void clib_spinlock_init (clib_spinlock_t *p)
 
static void clib_spinlock_free (clib_spinlock_t *p)
 
static_always_inline void clib_spinlock_lock (clib_spinlock_t *p)
 
static_always_inline void clib_spinlock_lock_if_init (clib_spinlock_t *p)
 
static_always_inline void clib_spinlock_unlock (clib_spinlock_t *p)
 
static_always_inline void clib_spinlock_unlock_if_init (clib_spinlock_t *p)
 
static void clib_rwlock_init (clib_rwlock_t *p)
 
static void clib_rwlock_free (clib_rwlock_t *p)
 
static void clib_rwlock_reader_lock (clib_rwlock_t *p)
 
static void clib_rwlock_reader_unlock (clib_rwlock_t *p)
 
static void clib_rwlock_writer_lock (clib_rwlock_t *p)
 
static void clib_rwlock_writer_unlock (clib_rwlock_t *p)
 

Macro Definition Documentation

◆ CLIB_LOCK_DBG

#define CLIB_LOCK_DBG (   _p)

Definition at line 44 of file lock.h.

◆ CLIB_LOCK_DBG_CLEAR

#define CLIB_LOCK_DBG_CLEAR (   _p)

Definition at line 45 of file lock.h.

◆ CLIB_PAUSE

#define CLIB_PAUSE ( )    __builtin_ia32_pause ()

Definition at line 23 of file lock.h.

◆ CLIB_SPINLOCK_ASSERT_LOCKED

#define CLIB_SPINLOCK_ASSERT_LOCKED (   _p)    ASSERT(CLIB_SPINLOCK_IS_LOCKED((_p)))

Definition at line 49 of file lock.h.

◆ CLIB_SPINLOCK_IS_LOCKED

#define CLIB_SPINLOCK_IS_LOCKED (   _p)    (*(_p))->lock

Definition at line 48 of file lock.h.

Typedef Documentation

◆ clib_rwlock_t

typedef struct clib_rw_lock_ * clib_rwlock_t

Function Documentation

◆ clib_rwlock_free()

static void clib_rwlock_free ( clib_rwlock_t p)
inlinestatic

Definition at line 140 of file lock.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clib_rwlock_init()

static void clib_rwlock_init ( clib_rwlock_t p)
inlinestatic

Definition at line 133 of file lock.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clib_rwlock_reader_lock()

static void clib_rwlock_reader_lock ( clib_rwlock_t p)
inlinestatic

Definition at line 150 of file lock.h.

+ Here is the caller graph for this function:

◆ clib_rwlock_reader_unlock()

static void clib_rwlock_reader_unlock ( clib_rwlock_t p)
inlinestatic

Definition at line 165 of file lock.h.

+ Here is the caller graph for this function:

◆ clib_rwlock_writer_lock()

static void clib_rwlock_writer_lock ( clib_rwlock_t p)
inlinestatic

Definition at line 173 of file lock.h.

+ Here is the caller graph for this function:

◆ clib_rwlock_writer_unlock()

static void clib_rwlock_writer_unlock ( clib_rwlock_t p)
inlinestatic

Definition at line 187 of file lock.h.

+ Here is the caller graph for this function:

◆ clib_spinlock_free()

static void clib_spinlock_free ( clib_spinlock_t p)
inlinestatic

Definition at line 70 of file lock.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clib_spinlock_init()

static void clib_spinlock_init ( clib_spinlock_t p)
inlinestatic

Definition at line 63 of file lock.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ clib_spinlock_lock()

static_always_inline void clib_spinlock_lock ( clib_spinlock_t p)

Definition at line 80 of file lock.h.

+ Here is the caller graph for this function:

◆ clib_spinlock_lock_if_init()

static_always_inline void clib_spinlock_lock_if_init ( clib_spinlock_t p)

Definition at line 95 of file lock.h.

+ Here is the call graph for this function:

◆ clib_spinlock_unlock()

static_always_inline void clib_spinlock_unlock ( clib_spinlock_t p)

Definition at line 102 of file lock.h.

+ Here is the caller graph for this function:

◆ clib_spinlock_unlock_if_init()

static_always_inline void clib_spinlock_unlock_if_init ( clib_spinlock_t p)

Definition at line 110 of file lock.h.

+ Here is the call graph for this function: