DPDK
18.11.11
|
#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 uint16_t(* | rawdev_queue_count_t) (struct rte_rawdev *dev) |
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_rawdev_pmd_allocate (const char *name, size_t dev_private_size, int socket_id) |
int | rte_rawdev_pmd_release (struct rte_rawdev *rawdev) |
struct rte_rawdev * | rte_rawdev_pmd_init (const char *name, size_t dev_private_size, int socket_id) |
int | rte_rawdev_pmd_uninit (const char *name) |
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 145 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 159 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 171 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 179 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 191 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 202 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 215 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 232 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 245 of file rte_rawdev_pmd.h.
typedef uint16_t(* rawdev_queue_count_t) (struct rte_rawdev *dev) |
Get the count of number of queues configured on this device.
Another way to fetch this information is to fetch the device configuration. But, that assumes that the device configuration managed by the driver has that kind of information.
This function helps in getting queue count supported, independently. It can help in cases where iterator needs to be implemented.
Raw | device pointer |
Definition at line 264 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 application and driver). |
Definition at line 288 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 313 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 330 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 347 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 365 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 385 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 391 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 410 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 429 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 445 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 459 of file rte_rawdev_pmd.h.
typedef int(* rawdev_firmware_load_t) (struct rte_rawdev *dev, rte_rawdev_obj_t firmware_buf) |
Load firmware from a buffer (DMA'able)
dev | Raw device pointer |
firmware_file | file pointer to firmware area |
Definition at line 476 of file rte_rawdev_pmd.h.
typedef int(* rawdev_firmware_unload_t) (struct rte_rawdev *dev) |
Unload firmware
dev | Raw device pointer |
Note: Application can use the firmware_status_get
or firmware_version_get
to get result of unload.
Definition at line 491 of file rte_rawdev_pmd.h.
typedef int(* rawdev_selftest_t) (void) |
|
static |
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 86 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 114 of file rte_rawdev_pmd.h.
struct rte_rawdev* rte_rawdev_pmd_allocate | ( | const char * | name, |
size_t | dev_private_size, | ||
int | socket_id | ||
) |
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_rawdev_pmd_release | ( | struct rte_rawdev * | rawdev | ) |
Release the specified rawdev device.
rawdev | The rawdev pointer is the address of the rte_rawdev structure. |
struct rte_rawdev* rte_rawdev_pmd_init | ( | const char * | name, |
size_t | dev_private_size, | ||
int | socket_id | ||
) |
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_rawdev_pmd_uninit | ( | const char * | name | ) |
Destroy a raw device
name | Name of the device |