DPDK  2.0.0
Data Structures | Macros | Functions
rte_rwlock.h File Reference
#include <rte_common.h>
#include <rte_atomic.h>

Data Structures

struct  rte_rwlock_t

Macros

#define RTE_RWLOCK_INITIALIZER   { 0 }

Functions

static void rte_rwlock_init (rte_rwlock_t *rwl)
static void rte_rwlock_read_lock (rte_rwlock_t *rwl)
static void rte_rwlock_read_unlock (rte_rwlock_t *rwl)
static void rte_rwlock_write_lock (rte_rwlock_t *rwl)
static void rte_rwlock_write_unlock (rte_rwlock_t *rwl)

Detailed Description

RTE Read-Write Locks

This file defines an API for read-write locks. The lock is used to protect data that allows multiple readers in parallel, but only one writer. All readers are blocked until the writer is finished writing.

Macro Definition Documentation

#define RTE_RWLOCK_INITIALIZER   { 0 }

A static rwlock initializer.

Function Documentation

static void rte_rwlock_init ( rte_rwlock_t rwl)
inlinestatic

Initialize the rwlock to an unlocked state.

Parameters
rwlA pointer to the rwlock structure.
static void rte_rwlock_read_lock ( rte_rwlock_t rwl)
inlinestatic

Take a read lock. Loop until the lock is held.

Parameters
rwlA pointer to a rwlock structure.
static void rte_rwlock_read_unlock ( rte_rwlock_t rwl)
inlinestatic

Release a read lock.

Parameters
rwlA pointer to the rwlock structure.
static void rte_rwlock_write_lock ( rte_rwlock_t rwl)
inlinestatic

Take a write lock. Loop until the lock is held.

Parameters
rwlA pointer to a rwlock structure.
static void rte_rwlock_write_unlock ( rte_rwlock_t rwl)
inlinestatic

Release a write lock.

Parameters
rwlA pointer to a rwlock structure.