DPDK
18.05.1
|
#include <string.h>
#include <rte_dev.h>
#include <rte_malloc.h>
#include <rte_log.h>
#include <rte_common.h>
#include "rte_rawdev.h"
Go to the source code of this file.
Data Structures | |
struct | rte_rawdev_ops |
Typedefs | |
typedef void(* | rawdev_info_get_t )(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info) |
typedef int(* | rawdev_configure_t )(const struct rte_rawdev *dev, rte_rawdev_obj_t config) |
typedef int(* | rawdev_start_t )(struct rte_rawdev *dev) |
typedef void(* | rawdev_stop_t )(struct rte_rawdev *dev) |
typedef int(* | rawdev_close_t )(struct rte_rawdev *dev) |
typedef int(* | rawdev_reset_t )(struct rte_rawdev *dev) |
typedef void(* | rawdev_queue_conf_get_t )(struct rte_rawdev *dev, uint16_t queue_id, rte_rawdev_obj_t queue_conf) |
typedef int(* | rawdev_queue_setup_t )(struct rte_rawdev *dev, uint16_t queue_id, rte_rawdev_obj_t queue_conf) |
typedef int(* | rawdev_queue_release_t )(struct rte_rawdev *dev, uint16_t queue_id) |
typedef int(* | rawdev_enqueue_bufs_t )(struct rte_rawdev *dev, struct rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context) |
typedef int(* | rawdev_dequeue_bufs_t )(struct rte_rawdev *dev, struct rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context) |
typedef int(* | rawdev_dump_t )(struct rte_rawdev *dev, FILE *f) |
typedef int(* | rawdev_get_attr_t )(struct rte_rawdev *dev, const char *attr_name, uint64_t *attr_value) |
typedef int(* | rawdev_set_attr_t )(struct rte_rawdev *dev, const char *attr_name, const uint64_t attr_value) |
typedef int(* | rawdev_xstats_get_t )(const struct rte_rawdev *dev, const unsigned int ids[], uint64_t values[], unsigned int n) |
typedef int(* | rawdev_xstats_reset_t )(struct rte_rawdev *dev, const uint32_t ids[], uint32_t nb_ids) |
typedef int(* | rawdev_xstats_get_names_t )(const struct rte_rawdev *dev, struct rte_rawdev_xstats_name *xstats_names, unsigned int size) |
typedef uint64_t(* | rawdev_xstats_get_by_name_t )(const struct rte_rawdev *dev, const char *name, unsigned int *id) |
typedef int(* | rawdev_firmware_status_get_t )(struct rte_rawdev *dev, rte_rawdev_obj_t status_info) |
typedef int(* | rawdev_firmware_version_get_t )(struct rte_rawdev *dev, rte_rawdev_obj_t version_info) |
typedef int(* | rawdev_firmware_load_t )(struct rte_rawdev *dev, rte_rawdev_obj_t firmware_buf) |
typedef int(* | rawdev_firmware_unload_t )(struct rte_rawdev *dev) |
typedef int(* | rawdev_selftest_t )(void) |
Functions | |
static struct rte_rawdev * | rte_rawdev_pmd_get_named_dev (const char *name) |
static unsigned | rte_rawdev_pmd_is_valid_dev (uint8_t dev_id) |
struct rte_rawdev *__rte_experimental | rte_rawdev_pmd_allocate (const char *name, size_t dev_private_size, int socket_id) |
int __rte_experimental | rte_rawdev_pmd_release (struct rte_rawdev *rawdev) |
struct rte_rawdev *__rte_experimental | rte_rawdev_pmd_init (const char *name, size_t dev_private_size, int socket_id) |
int __rte_experimental | rte_rawdev_pmd_uninit (const char *name) |
Variables | |
struct rte_rawdev * | rte_rawdevs |
RTE RAW PMD APIs
Definition in file rte_rawdev_pmd.h.
typedef void(* rawdev_info_get_t)(struct rte_rawdev *dev, rte_rawdev_obj_t dev_info) |
Definitions of all functions exported by a driver through the the generic structure of type rawdev_ops supplied in the rte_rawdev structure associated with a device. Get device information of a device.
dev | Raw device pointer |
dev_info | Raw device information structure |
Definition at line 150 of file rte_rawdev_pmd.h.
typedef int(* rawdev_configure_t)(const struct rte_rawdev *dev, rte_rawdev_obj_t config) |
Configure a device.
dev | Raw device pointer |
config | Void object containing device specific configuration |
Definition at line 164 of file rte_rawdev_pmd.h.
typedef int(* rawdev_start_t)(struct rte_rawdev *dev) |
Start a configured device.
dev | Raw device pointer |
Definition at line 176 of file rte_rawdev_pmd.h.
typedef void(* rawdev_stop_t)(struct rte_rawdev *dev) |
Stop a configured device.
dev | Raw device pointer |
Definition at line 184 of file rte_rawdev_pmd.h.
typedef int(* rawdev_close_t)(struct rte_rawdev *dev) |
Close a configured device.
dev | Raw device pointer |
Definition at line 196 of file rte_rawdev_pmd.h.
typedef int(* rawdev_reset_t)(struct rte_rawdev *dev) |
Reset a configured device.
dev | Raw device pointer |
Definition at line 207 of file rte_rawdev_pmd.h.
typedef void(* rawdev_queue_conf_get_t)(struct rte_rawdev *dev, uint16_t queue_id, rte_rawdev_obj_t queue_conf) |
Retrieve the current raw queue configuration.
dev | Raw device pointer | |
queue_id | Raw device queue index | |
[out] | queue_conf | Raw device queue configuration structure |
Definition at line 220 of file rte_rawdev_pmd.h.
typedef int(* rawdev_queue_setup_t)(struct rte_rawdev *dev, uint16_t queue_id, rte_rawdev_obj_t queue_conf) |
Setup an raw queue.
dev | Raw device pointer |
queue_id | Rawqueue index |
queue_conf | Rawqueue configuration structure |
Definition at line 237 of file rte_rawdev_pmd.h.
typedef int(* rawdev_queue_release_t)(struct rte_rawdev *dev, uint16_t queue_id) |
Release resources allocated by given raw queue.
dev | Raw device pointer |
queue_id | Raw queue index |
Definition at line 250 of file rte_rawdev_pmd.h.
typedef int(* rawdev_enqueue_bufs_t)(struct rte_rawdev *dev, struct rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context) |
Enqueue an array of raw buffers to the device.
Buffer being used is opaque - it can be obtained from mempool or from any other source. Interpretation of buffer is responsibility of driver.
dev | Raw device pointer |
bufs | array of buffers |
count | number of buffers passed |
context | an opaque object representing context of the call; for example, an application can pass information about the queues on which enqueue needs to be done. Or, the enqueue operation might be passed reference to an object containing a callback (agreed upon between applicatio and driver). |
Definition at line 275 of file rte_rawdev_pmd.h.
typedef int(* rawdev_dequeue_bufs_t)(struct rte_rawdev *dev, struct rte_rawdev_buf **buffers, unsigned int count, rte_rawdev_obj_t context) |
Dequeue an array of raw buffers from the device.
dev | Raw device pointer |
bufs | array of buffers |
count | Max buffers expected to be dequeued |
context | an opaque object representing context of the call. Based on this object, the application and driver can coordinate for dequeue operation involving agreed upon semantics. For example, queue information/id on which Dequeue needs to be performed. |
Definition at line 300 of file rte_rawdev_pmd.h.
typedef int(* rawdev_dump_t)(struct rte_rawdev *dev, FILE *f) |
Dump internal information
dev | Raw device pointer |
f | A pointer to a file for output |
Definition at line 317 of file rte_rawdev_pmd.h.
typedef int(* rawdev_get_attr_t)(struct rte_rawdev *dev, const char *attr_name, uint64_t *attr_value) |
Get an attribute value from implementation. Attribute is an opaque handle agreed upon between application and PMD.
dev | Raw device pointer |
attr_name | Opaque object representing an attribute in implementation. |
attr_value | [out] Opaque response to the attribute value. In case of error, this remains untouched. This is double pointer of void type. |
Definition at line 334 of file rte_rawdev_pmd.h.
typedef int(* rawdev_set_attr_t)(struct rte_rawdev *dev, const char *attr_name, const uint64_t attr_value) |
Set an attribute value. Attribute is an opaque handle agreed upon between application and PMD.
dev | Raw device pointer |
attr_name | Opaque object representing an attribute in implementation. |
attr_value | Value of the attribute represented by attr_name |
Definition at line 352 of file rte_rawdev_pmd.h.
typedef int(* rawdev_xstats_get_t)(const struct rte_rawdev *dev, const unsigned int ids[], uint64_t values[], unsigned int n) |
Retrieve a set of statistics from device. Note: Being a raw device, the stats are specific to the device being implemented thus represented as xstats.
dev | Raw device pointer |
ids | The stat ids to retrieve |
values | The returned stat values |
n | The number of id values and entries in the values array |
Definition at line 372 of file rte_rawdev_pmd.h.
typedef int(* rawdev_xstats_reset_t)(struct rte_rawdev *dev, const uint32_t ids[], uint32_t nb_ids) |
Resets the statistic values in xstats for the device.
Definition at line 378 of file rte_rawdev_pmd.h.
typedef int(* rawdev_xstats_get_names_t)(const struct rte_rawdev *dev, struct rte_rawdev_xstats_name *xstats_names, unsigned int size) |
Get names of extended stats of an raw device
dev | Raw device pointer |
xstats_names | Array of name values to be filled in |
size | Number of values in the xstats_names array |
Definition at line 397 of file rte_rawdev_pmd.h.
typedef uint64_t(* rawdev_xstats_get_by_name_t)(const struct rte_rawdev *dev, const char *name, unsigned int *id) |
Get value of one stats and optionally return its id
dev | Raw device pointer |
name | The name of the stat to retrieve |
id | Pointer to an unsigned int where we store the stat-id. This pointer may be null if the id is not required. |
Definition at line 416 of file rte_rawdev_pmd.h.
typedef int(* rawdev_firmware_status_get_t)(struct rte_rawdev *dev, rte_rawdev_obj_t status_info) |
Get firmware/device-stack status. Implementation to allocate buffer for returning information.
dev | Raw device pointer |
status | void block containing device specific status information |
status_info
Definition at line 432 of file rte_rawdev_pmd.h.
typedef int(* rawdev_firmware_version_get_t)(struct rte_rawdev *dev, rte_rawdev_obj_t version_info) |
Get firmware version information
dev | Raw device pointer |
version_info | void pointer to version information returned by device |
version_info
Definition at line 446 of file rte_rawdev_pmd.h.
typedef int(* rawdev_firmware_load_t)(struct rte_rawdev *dev, rte_rawdev_obj_t firmware_buf) |
Load firwmare from a buffer (DMA'able)
dev | Raw device pointer |
firmware_file | file pointer to firmware area |
Definition at line 463 of file rte_rawdev_pmd.h.
typedef int(* rawdev_firmware_unload_t)(struct rte_rawdev *dev) |
Unload firwmare
dev | Raw device pointer |
Note: Application can use the firmware_status_get
or firmware_version_get
to get result of unload.
Definition at line 478 of file rte_rawdev_pmd.h.
typedef int(* rawdev_selftest_t)(void) |
|
staticread |
The pool of rte_rawdev structures. Get the rte_rawdev structure device pointer for the named device.
name | device name to select the device structure. |
Definition at line 91 of file rte_rawdev_pmd.h.
|
inlinestatic |
Validate if the raw device index is a valid attached raw device.
dev_id | raw device index. |
Definition at line 119 of file rte_rawdev_pmd.h.
|
read |
Allocates a new rawdev slot for an raw device and returns the pointer to that slot for the driver to use.
name | Unique identifier name for each device |
dev_private_size | Private data allocated within rte_rawdev object. |
socket_id | Socket to allocate resources on. |
int __rte_experimental rte_rawdev_pmd_release | ( | struct rte_rawdev * | rawdev | ) |
Release the specified rawdev device.
rawdev | The rawdev pointer is the address of the rte_rawdev structure. |
|
read |
Creates a new raw device and returns the pointer to that device.
name | Pointer to a character array containing name of the device |
dev_private_size | Size of raw PMDs private data |
socket_id | Socket to allocate resources on. |
int __rte_experimental rte_rawdev_pmd_uninit | ( | const char * | name | ) |
Destroy a raw device
name | Name of the device |
struct rte_rawdev* rte_rawdevs |
Pointer to global raw devices data structure.