rte_ticketlock.h(3)

NAME
rte_ticketlock.h

SYNOPSIS

#include <rte_common.h>
#include <rte_lcore.h>
#include <rte_pause.h>
#include <rte_stdatomic.h>

  Data Structures

union rte_ticketlock_t

  Macros

#define RTE_TICKETLOCK_INITIALIZER { 0 }
#define TICKET_LOCK_INVALID_ID -1
#define RTE_TICKETLOCK_RECURSIVE_INITIALIZER

  Functions

static void rte_ticketlock_init (rte_ticketlock_t *tl)
static void rte_ticketlock_lock (rte_ticketlock_t *tl)
static void rte_ticketlock_unlock (rte_ticketlock_t *tl)
static int rte_ticketlock_trylock (rte_ticketlock_t *tl)
static int rte_ticketlock_is_locked (rte_ticketlock_t *tl)
static void rte_ticketlock_recursive_init (rte_ticketlock_recursive_t *tlr)
static void rte_ticketlock_recursive_lock (rte_ticketlock_recursive_t *tlr)
static void rte_ticketlock_recursive_unlock (rte_ticketlock_recursive_t *tlr)
static int rte_ticketlock_recursive_trylock (rte_ticketlock_recursive_t *tlr)

Detailed Description

RTE ticket locks

This file defines an API for ticket locks, which give each waiting thread a ticket and take the lock one by one, first come, first serviced.

All locks must be initialised before use, and only initialised once.

Definition in file rte_ticketlock.h.

Macro Definition Documentation

  #define RTE_TICKETLOCK_INITIALIZER { 0 }
A static ticketlock initializer.

Definition at line 43 of file rte_ticketlock.h.

  #define TICKET_LOCK_INVALID_ID -1
The rte_ticketlock_recursive_t type.

Definition at line 128 of file rte_ticketlock.h.

  #define RTE_TICKETLOCK_RECURSIVE_INITIALIZER
Value:
                          {RTE_TICKETLOCK_INITIALIZER, \
                          TICKET_LOCK_INVALID_ID, 0}

A static recursive ticketlock initializer.

Definition at line 139 of file rte_ticketlock.h.

Function Documentation

  void rte_ticketlock_init (rte_ticketlock_t * tl) [inline], [static]
Initialize the ticketlock to an unlocked state.

Parameters
    tl A pointer to the ticketlock.

Definition at line 52 of file rte_ticketlock.h.

  void rte_ticketlock_lock (rte_ticketlock_t * tl) [inline], [static]
Take the ticketlock.

Parameters
    tl A pointer to the ticketlock.

Definition at line 64 of file rte_ticketlock.h.

  void rte_ticketlock_unlock (rte_ticketlock_t * tl) [inline], [static]
Release the ticketlock.

Parameters
    tl A pointer to the ticketlock.

Definition at line 78 of file rte_ticketlock.h.

  int rte_ticketlock_trylock (rte_ticketlock_t * tl) [inline], [static]
Try to take the lock.

Parameters
    tl A pointer to the ticketlock.

Returns
    1 if the lock is successfully taken; 0 otherwise.

Definition at line 93 of file rte_ticketlock.h.

  int rte_ticketlock_is_locked (rte_ticketlock_t * tl) [inline], [static]
Test if the lock is taken.

Parameters
    tl A pointer to the ticketlock.

Returns
    1 if the lock is currently taken; 0 otherwise.

Definition at line 118 of file rte_ticketlock.h.

  void rte_ticketlock_recursive_init (rte_ticketlock_recursive_t * tlr) [inline], [static]
Initialize the recursive ticketlock to an unlocked state.

Parameters
    tlr A pointer to the recursive ticketlock.

Definition at line 149 of file rte_ticketlock.h.

  void rte_ticketlock_recursive_lock (rte_ticketlock_recursive_t * tlr) [inline], [static]
Take the recursive ticketlock.

Parameters
    tlr A pointer to the recursive ticketlock.

Definition at line 163 of file rte_ticketlock.h.

  void rte_ticketlock_recursive_unlock (rte_ticketlock_recursive_t * tlr) [inline], [static]
Release the recursive ticketlock.

Parameters
    tlr A pointer to the recursive ticketlock.

Definition at line 181 of file rte_ticketlock.h.

  int rte_ticketlock_recursive_trylock (rte_ticketlock_recursive_t * tlr) [inline], [static]
Try to take the recursive lock.

Parameters
    tlr A pointer to the recursive ticketlock.

Returns
    1 if the lock is successfully taken; 0 otherwise.

Definition at line 199 of file rte_ticketlock.h.

Author

Generated automatically by Doxygen for DPDK from the source code.