DPDK  18.05.1
Data Structures | Macros | Typedefs | Enumerations | Functions
rte_dev.h File Reference
#include <stdio.h>
#include <sys/queue.h>
#include <rte_config.h>
#include <rte_compat.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_dev_event_type { RTE_DEV_EVENT_ADD, RTE_DEV_EVENT_REMOVE, RTE_DEV_EVENT_MAX }
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_experimental rte_eal_hotplug_add (const char *busname, const char *devname, const char *devargs)
int __rte_experimental rte_eal_hotplug_remove (const char *busname, const char *devname)
int __rte_experimental rte_dev_event_callback_register (const char *device_name, rte_dev_event_cb_fn cb_fn, void *cb_arg)
int __rte_experimental rte_dev_event_callback_unregister (const char *device_name, rte_dev_event_cb_fn cb_fn, void *cb_arg)
int __rte_experimental rte_dev_event_monitor_start (void)
int __rte_experimental rte_dev_event_monitor_stop (void)

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

Enumeration Type Documentation

The device event type.

Enumerator:
RTE_DEV_EVENT_ADD 

device being added

RTE_DEV_EVENT_REMOVE 

device being removed

RTE_DEV_EVENT_MAX 

max value of this enum

Definition at line 30 of file rte_dev.h.

Device driver.

Definition at line 114 of file rte_dev.h.

Device policies.

Definition at line 126 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_experimental 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_experimental 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.
int __rte_experimental rte_dev_event_callback_register ( const char *  device_name,
rte_dev_event_cb_fn  cb_fn,
void *  cb_arg 
)
Warning
EXPERIMENTAL: this API may change without prior notice

It registers the callback for the specific device. Multiple callbacks cal be registered at the same time.

Parameters
device_nameThe device name, that is the param name of the struct rte_device, null value means for all devices.
cb_fncallback address.
cb_argaddress of parameter for callback.
Returns
  • On success, zero.
  • On failure, a negative value.
int __rte_experimental rte_dev_event_callback_unregister ( const char *  device_name,
rte_dev_event_cb_fn  cb_fn,
void *  cb_arg 
)
Warning
EXPERIMENTAL: this API may change without prior notice

It unregisters the callback according to the specified device.

Parameters
device_nameThe device name, that is the param name of the struct rte_device, null value means for all devices and their callbacks.
cb_fncallback address.
cb_argaddress of parameter for callback, (void *)-1 means to remove all registered which has the same callback address.
Returns
  • On success, return the number of callback entities removed.
  • On failure, a negative value.
int __rte_experimental rte_dev_event_monitor_start ( void  )
Warning
EXPERIMENTAL: this API may change without prior notice

Start the device event monitoring.

Returns
  • On success, zero.
  • On failure, a negative value.
int __rte_experimental rte_dev_event_monitor_stop ( void  )
Warning
EXPERIMENTAL: this API may change without prior notice

Stop the device event monitoring.

Returns
  • On success, zero.
  • On failure, a negative value.