DPDK: Data Plane Development Kit

18.02.0-rc0
rte_dev.h File Reference
#include <stdio.h>
#include <sys/queue.h>
#include <rte_log.h>

Go to the source code of this file.

Data Structures

struct  rte_mem_resource
struct  rte_driver
struct  rte_device

Macros

#define RTE_PMD_REGISTER_KMOD_DEP(name, str)

Typedefs

typedef int(* rte_dev_cmp_t )(const struct rte_device *dev, const void *data)

Enumerations

enum  rte_kernel_driver
enum  rte_dev_policy

Functions

int rte_eal_dev_attach (const char *name, const char *devargs)
int rte_eal_dev_detach (struct rte_device *dev)
int rte_eal_hotplug_add (const char *busname, const char *devname, const char *devargs)
int rte_eal_hotplug_remove (const char *busname, const char *devname)

Detailed Description

RTE PMD Driver Registration Interface

This file manages the list of device drivers.

Definition in file rte_dev.h.

Macro Definition Documentation

#define RTE_PMD_REGISTER_KMOD_DEP (   name,
  str 
)
Value:
static const char DRV_EXP_TAG(name, kmod_dep_export)[] \
__attribute__((used)) = str

Advertise the list of kernel modules required to run this driver

This string lists the kernel modules required for the devices associated to a PMD. The format of each line of the string is: "<device-pattern> <kmod-expression>".

The possible formats for the device pattern are: "*" all devices supported by this driver "pci:*" all PCI devices supported by this driver "pci:v8086:d*:sv*:sd*" all PCI devices supported by this driver whose vendor id is 0x8086.

The format of the kernel modules list is a parenthesed expression containing logical-and (&) and logical-or (|).

The device pattern and the kmod expression are separated by a space.

Example:

  • "* igb_uio | uio_pci_generic | vfio"

Definition at line 288 of file rte_dev.h.

Typedef Documentation

typedef int(* rte_dev_cmp_t)(const struct rte_device *dev, const void *data)

Device comparison function.

This type of function is used to compare an rte_device with arbitrary data.

Parameters
devDevice handle.
dataData to compare against. The type of this parameter is determined by the kind of comparison performed by the function.
Returns
0 if the device matches the data. !0 if the device does not match. <0 if ordering is possible and the device is lower than the data. >0 if ordering is possible and the device is greater than the data.

Definition at line 249 of file rte_dev.h.

Enumeration Type Documentation

Device driver.

Definition at line 119 of file rte_dev.h.

Device policies.

Definition at line 131 of file rte_dev.h.

Function Documentation

int rte_eal_dev_attach ( const char *  name,
const char *  devargs 
)

Attach a device to a registered driver.

Parameters
nameThe device name, that refers to a pci device (or some private way of designating a vdev device). Based on this device name, eal will identify a driver capable of handling it and pass it to the driver probing function.
devargsDevice arguments to be passed to the driver.
Returns
0 on success, negative on error.
int rte_eal_dev_detach ( struct rte_device dev)

Detach a device from its driver.

Parameters
devA pointer to a rte_device structure.
Returns
0 on success, negative on error.
int rte_eal_hotplug_add ( const char *  busname,
const char *  devname,
const char *  devargs 
)
Warning
EXPERIMENTAL: this API may change without prior notice

Hotplug add a given device to a specific bus.

Parameters
busnameThe bus name the device is added to.
devnameThe device name. Based on this device name, eal will identify a driver capable of handling it and pass it to the driver probing function.
devargsDevice arguments to be passed to the driver.
Returns
0 on success, negative on error.
int rte_eal_hotplug_remove ( const char *  busname,
const char *  devname 
)
Warning
EXPERIMENTAL: this API may change without prior notice

Hotplug remove a given device from a specific bus.

Parameters
busnameThe bus name the device is removed from.
devnameThe device name being removed.
Returns
0 on success, negative on error.