Scroll to navigation

rte_event_ring.h(3) DPDK rte_event_ring.h(3)

NAME

rte_event_ring.h

SYNOPSIS

#include <stdint.h>
#include <rte_common.h>
#include <rte_ring.h>
#include <rte_ring_elem.h>
#include 'rte_eventdev.h'

Data Structures


struct rte_event_ring

Functions


static __rte_always_inline unsigned int rte_event_ring_count (const struct rte_event_ring *r)
static __rte_always_inline unsigned int rte_event_ring_free_count (const struct rte_event_ring *r)
static __rte_always_inline unsigned int rte_event_ring_enqueue_bulk (struct rte_event_ring *r, const struct rte_event *events, unsigned int n, uint16_t *free_space)
static __rte_always_inline unsigned int rte_event_ring_dequeue_bulk (struct rte_event_ring *r, struct rte_event *events, unsigned int n, uint16_t *available)
static __rte_always_inline unsigned int rte_event_ring_enqueue_burst (struct rte_event_ring *r, const struct rte_event *events, unsigned int n, uint16_t *free_space)
static __rte_always_inline unsigned int rte_event_ring_dequeue_burst (struct rte_event_ring *r, struct rte_event *events, unsigned int n, uint16_t *available)
struct rte_event_ring * rte_event_ring_lookup (const char *name)
void rte_event_ring_free (struct rte_event_ring *r)
static unsigned int rte_event_ring_get_size (const struct rte_event_ring *r)
static unsigned int rte_event_ring_get_capacity (const struct rte_event_ring *r)

Detailed Description

RTE Event Ring

This provides a ring implementation for passing rte_event structures from one core to another.

Definition in file rte_event_ring.h.

Function Documentation

static __rte_always_inline unsigned int rte_event_ring_count (const struct rte_event_ring * r) [static]

Returns the number of events in the ring

Parameters:

r pointer to the event ring

Returns:

the number of events in the ring

Definition at line 50 of file rte_event_ring.h.

static __rte_always_inline unsigned int rte_event_ring_free_count (const struct rte_event_ring * r) [static]

Returns the amount of free space in the ring

Parameters:

r pointer to the event ring

Returns:

the number of free slots in the ring, i.e. the number of events that can be successfully enqueued before dequeue must be called

Definition at line 65 of file rte_event_ring.h.

static __rte_always_inline unsigned int rte_event_ring_enqueue_bulk (struct rte_event_ring * r, const struct rte_event * events, unsigned int n, uint16_t * free_space) [static]

Enqueue several objects on a ring.

This function calls the multi-producer or the single-producer version depending on the default behavior that was specified at ring creation time (see flags).

Parameters:

r pointer to the event ring
events pointer to an array of struct rte_event objects
n The number of events in the array to enqueue
free_space if non-NULL, returns the amount of space in the ring after the enqueue operation has completed

Returns:

the number of objects enqueued, either 0 or n

Definition at line 91 of file rte_event_ring.h.

static __rte_always_inline unsigned int rte_event_ring_dequeue_bulk (struct rte_event_ring * r, struct rte_event * events, unsigned int n, uint16_t * available) [static]

Dequeue a set of events from a ring

Note: this API does not work with pointers to events, rather it copies the events themselves to the destination events buffer.

Parameters:

r pointer to the event ring
events pointer to an array to hold the struct rte_event objects
n number of events that can be held in the events array
available if non-null, is updated to indicate the number of events remaining in the ring once the dequeue has completed

Returns:

the number of objects dequeued, either 0 or n

Definition at line 127 of file rte_event_ring.h.

static __rte_always_inline unsigned int rte_event_ring_enqueue_burst (struct rte_event_ring * r, const struct rte_event * events, unsigned int n, uint16_t * free_space) [static]

Enqueue a set of events onto a ring

Note: this API enqueues by copying the events themselves onto the ring, rather than just placing a pointer to each event onto the ring. This means that statically-allocated events can safely be enqueued by this API.

Parameters:

r pointer to the event ring
events pointer to an array of struct rte_event objects
n number of events in the array to enqueue
free_space if non-null, is updated to indicate the amount of free space in the ring once the enqueue has completed.

Returns:

the number of elements, n', enqueued to the ring, 0 <= n' <= n

Definition at line 165 of file rte_event_ring.h.

static __rte_always_inline unsigned int rte_event_ring_dequeue_burst (struct rte_event_ring * r, struct rte_event * events, unsigned int n, uint16_t * available) [static]

Dequeue a set of events from a ring

Note: this API does not work with pointers to events, rather it copies the events themselves to the destination events buffer.

Parameters:

r pointer to the event ring
events pointer to an array to hold the struct rte_event objects
n number of events that can be held in the events array
available if non-null, is updated to indicate the number of events remaining in the ring once the dequeue has completed

Returns:

the number of elements, n', dequeued from the ring, 0 <= n' <= n

Definition at line 201 of file rte_event_ring.h.

struct rte_event_ring* rte_event_ring_lookup (const char * name)

Search for an event ring based on its name

Parameters:

name The name of the ring.

Returns:

The pointer to the ring matching the name, or NULL if not found, with rte_errno set appropriately. Possible rte_errno values include:
ENOENT - required entry not available to return.

void rte_event_ring_free (struct rte_event_ring * r)

De-allocate all memory used by the ring.

Parameters:

r Pointer to ring to created with rte_event_ring_create(). If r is NULL, no operation is performed.

static unsigned int rte_event_ring_get_size (const struct rte_event_ring * r) [inline], [static]

Return the size of the event ring.

Parameters:

r A pointer to the ring structure.

Returns:

The size of the data store used by the ring. NOTE: this is not the same as the usable space in the ring. To query that use rte_ring_get_capacity().

Definition at line 328 of file rte_event_ring.h.

static unsigned int rte_event_ring_get_capacity (const struct rte_event_ring * r) [inline], [static]

Return the number of elements which can be stored in the event ring.

Parameters:

r A pointer to the ring structure.

Returns:

The usable size of the ring.

Definition at line 342 of file rte_event_ring.h.

Author

Generated automatically by Doxygen for DPDK from the source code.

Thu May 23 2024 Version 23.11.0