DPDK  17.02.1
Data Structures | Macros | Functions
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_device
struct  rte_driver

Macros

#define RTE_PMD_REGISTER_KMOD_DEP(name, str)

Functions

 TAILQ_HEAD (rte_driver_list, rte_driver)
 TAILQ_HEAD (rte_device_list, rte_device)
void rte_eal_device_insert (struct rte_device *dev)
void rte_eal_device_remove (struct rte_device *dev)
void rte_eal_driver_register (struct rte_driver *driver)
void rte_eal_driver_unregister (struct rte_driver *driver)
int rte_eal_dev_init (void)
int rte_eal_vdev_init (const char *name, const char *args)
int rte_eal_vdev_uninit (const char *name)
int rte_eal_dev_attach (const char *name, const char *devargs)
int rte_eal_dev_detach (const char *name)

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 263 of file rte_dev.h.

Function Documentation

TAILQ_HEAD ( rte_driver_list  ,
rte_driver   
)

Double linked list of device drivers.

TAILQ_HEAD ( rte_device_list  ,
rte_device   
)

Double linked list of devices.

void rte_eal_device_insert ( struct rte_device dev)

Insert a device detected by a bus scanning.

Parameters
devA pointer to a rte_device structure describing the detected device.
void rte_eal_device_remove ( struct rte_device dev)

Remove a device (e.g. when being unplugged).

Parameters
devA pointer to a rte_device structure describing the device to be removed.
void rte_eal_driver_register ( struct rte_driver driver)

Register a device driver.

Parameters
driverA pointer to a rte_dev structure describing the driver to be registered.
void rte_eal_driver_unregister ( struct rte_driver driver)

Unregister a device driver.

Parameters
driverA pointer to a rte_dev structure describing the driver to be unregistered.
int rte_eal_dev_init ( void  )

Initalize all the registered drivers in this process

int rte_eal_vdev_init ( const char *  name,
const char *  args 
)

Initialize a driver specified by name.

Parameters
nameThe pointer to a driver name to be initialized.
argsThe pointer to arguments used by driver initialization.
Returns
0 on success, negative on error
int rte_eal_vdev_uninit ( const char *  name)

Uninitalize a driver specified by name.

Parameters
nameThe pointer to a driver name to be initialized.
Returns
0 on success, negative on error
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 ( const char *  name)

Detach a device from its driver.

Parameters
nameSame description as for rte_eal_dev_attach(). Here, eal will call the driver detaching function.
Returns
0 on success, negative on error.