DPDK  17.05.2
Data Structures | Typedefs | Functions | Variables
rte_eventdev_pmd.h File Reference
#include <string.h>
#include <rte_dev.h>
#include <rte_pci.h>
#include <rte_malloc.h>
#include <rte_log.h>
#include <rte_common.h>
#include "rte_eventdev.h"

Go to the source code of this file.

Data Structures

struct  rte_eventdev_driver
struct  rte_eventdev_global
struct  rte_eventdev_ops

Typedefs

typedef int(* eventdev_init_t )(struct rte_eventdev *dev)
typedef int(* eventdev_uninit_t )(struct rte_eventdev *dev)
typedef void(* eventdev_info_get_t )(struct rte_eventdev *dev, struct rte_event_dev_info *dev_info)
typedef int(* eventdev_configure_t )(const struct rte_eventdev *dev)
typedef int(* eventdev_start_t )(struct rte_eventdev *dev)
typedef void(* eventdev_stop_t )(struct rte_eventdev *dev)
typedef int(* eventdev_close_t )(struct rte_eventdev *dev)
typedef void(* eventdev_queue_default_conf_get_t )(struct rte_eventdev *dev, uint8_t queue_id, struct rte_event_queue_conf *queue_conf)
typedef int(* eventdev_queue_setup_t )(struct rte_eventdev *dev, uint8_t queue_id, const struct rte_event_queue_conf *queue_conf)
typedef void(* eventdev_queue_release_t )(struct rte_eventdev *dev, uint8_t queue_id)
typedef void(* eventdev_port_default_conf_get_t )(struct rte_eventdev *dev, uint8_t port_id, struct rte_event_port_conf *port_conf)
typedef int(* eventdev_port_setup_t )(struct rte_eventdev *dev, uint8_t port_id, const struct rte_event_port_conf *port_conf)
typedef void(* eventdev_port_release_t )(void *port)
typedef int(* eventdev_port_link_t )(struct rte_eventdev *dev, void *port, const uint8_t queues[], const uint8_t priorities[], uint16_t nb_links)
typedef int(* eventdev_port_unlink_t )(struct rte_eventdev *dev, void *port, uint8_t queues[], uint16_t nb_unlinks)
typedef int(* eventdev_dequeue_timeout_ticks_t )(struct rte_eventdev *dev, uint64_t ns, uint64_t *timeout_ticks)
typedef void(* eventdev_dump_t )(struct rte_eventdev *dev, FILE *f)
typedef int(* eventdev_xstats_get_t )(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, const unsigned int ids[], uint64_t values[], unsigned int n)
typedef int(* eventdev_xstats_reset_t )(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, const uint32_t ids[], uint32_t nb_ids)
typedef int(* eventdev_xstats_get_names_t )(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, unsigned int *ids, unsigned int size)
typedef uint64_t(* eventdev_xstats_get_by_name )(const struct rte_eventdev *dev, const char *name, unsigned int *id)

Functions

static struct rte_eventdev * rte_event_pmd_get_named_dev (const char *name)
static unsigned rte_event_pmd_is_valid_dev (uint8_t dev_id)
struct rte_eventdev * rte_event_pmd_allocate (const char *name, int socket_id)
int rte_event_pmd_release (struct rte_eventdev *eventdev)
struct rte_eventdev * rte_event_pmd_vdev_init (const char *name, size_t dev_private_size, int socket_id)
int rte_event_pmd_vdev_uninit (const char *name)
int rte_event_pmd_pci_probe (struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
int rte_event_pmd_pci_remove (struct rte_pci_device *pci_dev)

Variables

struct rte_eventdev * rte_eventdevs

Detailed Description

RTE Event PMD APIs

Note
These API are from event PMD only and user applications should not call them directly.

Definition in file rte_eventdev_pmd.h.

Typedef Documentation

typedef int(* eventdev_init_t)(struct rte_eventdev *dev)

Initialisation function of a event driver invoked for each matching event PCI device detected during the PCI probing phase.

Parameters
devThe dev pointer is the address of the rte_eventdev structure associated with the matching device and which has been [automatically] allocated in the rte_event_devices array.
Returns
  • 0: Success, the device is properly initialised by the driver. In particular, the driver MUST have set up the dev_ops pointer of the dev structure.
  • <0: Error code of the device initialisation failure.

Definition at line 105 of file rte_eventdev_pmd.h.

typedef int(* eventdev_uninit_t)(struct rte_eventdev *dev)

Finalisation function of a driver invoked for each matching PCI device detected during the PCI closing phase.

Parameters
devThe dev pointer is the address of the rte_eventdev structure associated with the matching device and which has been [automatically] allocated in the rte_event_devices array.
Returns
  • 0: Success, the device is properly finalised by the driver. In particular, the driver MUST free the dev_ops pointer of the dev structure.
  • <0: Error code of the device initialisation failure.

Definition at line 122 of file rte_eventdev_pmd.h.

typedef void(* eventdev_info_get_t)(struct rte_eventdev *dev, struct rte_event_dev_info *dev_info)

Definitions of all functions exported by a driver through the the generic structure of type event_dev_ops supplied in the rte_eventdev structure associated with a device. Get device information of a device.

Parameters
devEvent device pointer
dev_infoEvent device information structure
Returns
Returns 0 on success

Definition at line 223 of file rte_eventdev_pmd.h.

typedef int(* eventdev_configure_t)(const struct rte_eventdev *dev)

Configure a device.

Parameters
devEvent device pointer
Returns
Returns 0 on success

Definition at line 235 of file rte_eventdev_pmd.h.

typedef int(* eventdev_start_t)(struct rte_eventdev *dev)

Start a configured device.

Parameters
devEvent device pointer
Returns
Returns 0 on success

Definition at line 246 of file rte_eventdev_pmd.h.

typedef void(* eventdev_stop_t)(struct rte_eventdev *dev)

Stop a configured device.

Parameters
devEvent device pointer

Definition at line 254 of file rte_eventdev_pmd.h.

typedef int(* eventdev_close_t)(struct rte_eventdev *dev)

Close a configured device.

Parameters
devEvent device pointer
Returns
  • 0 on success
  • (-EAGAIN) if can't close as device is busy

Definition at line 266 of file rte_eventdev_pmd.h.

typedef void(* eventdev_queue_default_conf_get_t)(struct rte_eventdev *dev, uint8_t queue_id, struct rte_event_queue_conf *queue_conf)

Retrieve the default event queue configuration.

Parameters
devEvent device pointer
queue_idEvent queue index
[out]queue_confEvent queue configuration structure

Definition at line 279 of file rte_eventdev_pmd.h.

typedef int(* eventdev_queue_setup_t)(struct rte_eventdev *dev, uint8_t queue_id, const struct rte_event_queue_conf *queue_conf)

Setup an event queue.

Parameters
devEvent device pointer
queue_idEvent queue index
queue_confEvent queue configuration structure
Returns
Returns 0 on success.

Definition at line 295 of file rte_eventdev_pmd.h.

typedef void(* eventdev_queue_release_t)(struct rte_eventdev *dev, uint8_t queue_id)

Release resources allocated by given event queue.

Parameters
devEvent device pointer
queue_idEvent queue index

Definition at line 308 of file rte_eventdev_pmd.h.

typedef void(* eventdev_port_default_conf_get_t)(struct rte_eventdev *dev, uint8_t port_id, struct rte_event_port_conf *port_conf)

Retrieve the default event port configuration.

Parameters
devEvent device pointer
port_idEvent port index
[out]port_confEvent port configuration structure

Definition at line 322 of file rte_eventdev_pmd.h.

typedef int(* eventdev_port_setup_t)(struct rte_eventdev *dev, uint8_t port_id, const struct rte_event_port_conf *port_conf)

Setup an event port.

Parameters
devEvent device pointer
port_idEvent port index
port_confEvent port configuration structure
Returns
Returns 0 on success.

Definition at line 338 of file rte_eventdev_pmd.h.

typedef void(* eventdev_port_release_t)(void *port)

Release memory resources allocated by given event port.

Parameters
portEvent port pointer

Definition at line 349 of file rte_eventdev_pmd.h.

typedef int(* eventdev_port_link_t)(struct rte_eventdev *dev, void *port, const uint8_t queues[], const uint8_t priorities[], uint16_t nb_links)

Link multiple source event queues to destination event port.

Parameters
devEvent device pointer
portEvent port pointer
linkPoints to an array of nb_links event queues to be linked to the event port.
prioritiesPoints to an array of nb_links service priorities associated with each event queue link to event port.
nb_linksThe number of links to establish
Returns
Returns 0 on success.

Definition at line 371 of file rte_eventdev_pmd.h.

typedef int(* eventdev_port_unlink_t)(struct rte_eventdev *dev, void *port, uint8_t queues[], uint16_t nb_unlinks)

Unlink multiple source event queues from destination event port.

Parameters
devEvent device pointer
portEvent port pointer
queuesAn array of nb_unlinks event queues to be unlinked from the event port.
nb_unlinksThe number of unlinks to establish
Returns
Returns 0 on success.

Definition at line 391 of file rte_eventdev_pmd.h.

typedef int(* eventdev_dequeue_timeout_ticks_t)(struct rte_eventdev *dev, uint64_t ns, uint64_t *timeout_ticks)

Converts nanoseconds to timeout_ticks value for rte_event_dequeue()

Parameters
devEvent device pointer
nsWait time in nanosecond
[out]timeout_ticksValue for the timeout_ticks parameter in rte_event_dequeue() function
Returns
Returns 0 on success.

Definition at line 408 of file rte_eventdev_pmd.h.

typedef void(* eventdev_dump_t)(struct rte_eventdev *dev, FILE *f)

Dump internal information

Parameters
devEvent device pointer
fA pointer to a file for output

Definition at line 420 of file rte_eventdev_pmd.h.

typedef int(* eventdev_xstats_get_t)(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, const unsigned int ids[], uint64_t values[], unsigned int n)

Retrieve a set of statistics from device

Parameters
devEvent device pointer
idsThe stat ids to retrieve
valuesThe returned stat values
nThe number of id values and entries in the values array
Returns
The number of stat values successfully filled into the values array

Definition at line 436 of file rte_eventdev_pmd.h.

typedef int(* eventdev_xstats_reset_t)(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, const uint32_t ids[], uint32_t nb_ids)

Resets the statistic values in xstats for the device, based on mode.

Definition at line 443 of file rte_eventdev_pmd.h.

typedef int(* eventdev_xstats_get_names_t)(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, unsigned int *ids, unsigned int size)

Get names of extended stats of an event device

Parameters
devEvent device pointer
xstats_namesArray of name values to be filled in
sizeNumber of values in the xstats_names array
Returns
When size >= the number of stats, return the number of stat values filled into the array. When size < the number of available stats, return the number of stats values, and do not fill in any data into xstats_names.

Definition at line 464 of file rte_eventdev_pmd.h.

typedef uint64_t(* eventdev_xstats_get_by_name)(const struct rte_eventdev *dev, const char *name, unsigned int *id)

Get value of one stats and optionally return its id

Parameters
devEvent device pointer
nameThe name of the stat to retrieve
idPointer to an unsigned int where we store the stat-id for future reference. This pointer may be null if the id is not required.
Returns
The value of the stat, or (uint64_t)-1 if the stat is not found. If the stat is not found, the id value will be returned as (unsigned)-1, if id pointer is non-NULL

Definition at line 484 of file rte_eventdev_pmd.h.

Function Documentation

static struct rte_eventdev* rte_event_pmd_get_named_dev ( const char *  name)
staticread

The pool of rte_eventdev structures. Get the rte_eventdev structure device pointer for the named device.

Parameters
namedevice name to select the device structure.
Returns
  • The rte_eventdev structure pointer for the given device ID.

Definition at line 164 of file rte_eventdev_pmd.h.

static unsigned rte_event_pmd_is_valid_dev ( uint8_t  dev_id)
inlinestatic

Validate if the event device index is valid attached event device.

Parameters
dev_idEvent device index.
Returns
  • If the device index is valid (1) or not (0).

Definition at line 192 of file rte_eventdev_pmd.h.

struct rte_eventdev* rte_event_pmd_allocate ( const char *  name,
int  socket_id 
)
read

Allocates a new eventdev slot for an event device and returns the pointer to that slot for the driver to use.

Parameters
nameUnique identifier name for each device
socket_idSocket to allocate resources on.
Returns
  • Slot in the rte_dev_devices array for a new device;
int rte_event_pmd_release ( struct rte_eventdev *  eventdev)

Release the specified eventdev device.

Parameters
eventdevThe eventdev pointer is the address of the rte_eventdev structure.
Returns
  • 0 on success, negative on error
struct rte_eventdev* rte_event_pmd_vdev_init ( const char *  name,
size_t  dev_private_size,
int  socket_id 
)
read

Creates a new virtual event device and returns the pointer to that device.

Parameters
namePMD type name
dev_private_sizeSize of event PMDs private data
socket_idSocket to allocate resources on.
Returns
  • Eventdev pointer if device is successfully created.
  • NULL if device cannot be created.
int rte_event_pmd_vdev_uninit ( const char *  name)

Destroy the given virtual event device

Parameters
namePMD type name
Returns
  • 0 on success, negative on error
int rte_event_pmd_pci_probe ( struct rte_pci_driver pci_drv,
struct rte_pci_device pci_dev 
)

Wrapper for use by pci drivers as a .probe function to attach to a event interface.

int rte_event_pmd_pci_remove ( struct rte_pci_device pci_dev)

Wrapper for use by pci drivers as a .remove function to detach a event interface.

Variable Documentation

struct rte_eventdev* rte_eventdevs

Pointer to global event devices data structure.