rte_devargs.h(3)
β¨ rte_devargs.h(3) β¨ β the library functions manual, but make it cute
okay bestie, welcome to rte_devargs.h(3), aka the header that keeps the receipts on every device you told DPDK about π this is the Library Functions Manual page for it, and yes we're reading the whole thing, no skimming, we're not cowards.
πΈ NAME πΈ
rte_devargs.h β the header itself, the main character, no notes π
π SYNOPSIS π
#include <stdio.h>
#include <rte_dev.h>
π¦ Data Structures
struct rte_devargs
π¦ Macros
#define RTE_DEVARGS_KEY_BUS 'bus'#define RTE_DEVARGS_KEY_CLASS 'class'#define RTE_DEVARGS_KEY_DRIVER 'driver'#define RTE_EAL_DEVARGS_FOREACH(busname, da)
π¦ Enumerations
enum rte_devtype
π¦ Functions
int rte_devargs_parse (struct rte_devargs *da, const char *dev)int rte_devargs_parsef (struct rte_devargs *da, const char *format,...)__rte_format_printf(2int void rte_devargs_reset (struct rte_devargs *da)int rte_devargs_insert (struct rte_devargs **da)int rte_devargs_add (enum rte_devtype devtype, const char *devargs_str)int rte_devargs_remove (struct rte_devargs *devargs)unsigned int rte_devargs_type_count (enum rte_devtype devtype)void rte_devargs_dump (FILE *f)struct rte_devargs * rte_devargs_next (const char *busname, const struct rte_devargs *start)
π Detailed Description π
RTE devargs: list of devices and their user arguments β like, that's the whole vibe of the file.
This file stores a list of devices and their arguments given by the user when a DPDK application is started. These devices can be PCI devices or virtual devices. These devices are stored at startup in a list of rte_devargs structures. so basically it's a guest list, and the guest list is a linked list, periodt πβ¨
Definition in file rte_devargs.h.
π Macro Definition Documentation π
#define RTE_DEVARGS_KEY_BUS 'bus'
Bus type key in global devargs syntax.
Legacy devargs parser doesn't use this key as bus type is resolved as first optional value separated by ":". so the old parser is like "i found the bus myself, thanks tho" π
Definition at line 35 of file rte_devargs.h.
#define RTE_DEVARGS_KEY_CLASS 'class'
Class type key in global devargs syntax.
Legacy devargs parser doesn't parse class type. PMD is encouraged to use this key to resolve class type. ngl the legacy parser just skipped that part, so PMD bestie, you handle it π«Ά
Definition at line 43 of file rte_devargs.h.
#define RTE_DEVARGS_KEY_DRIVER 'driver'
Driver type key in global devargs syntax.
Legacy devargs parser doesn't parse driver type. PMD is encouraged to use this key to resolve driver type. same energy as above fr fr π
Definition at line 51 of file rte_devargs.h.
#define RTE_EAL_DEVARGS_FOREACH( busname, da)
Value:
for (da = rte_devargs_next(busname, NULL); \
da != NULL; \
da = rte_devargs_next(busname, da)) \
Iterate over all rte_devargs for a specific bus. it's giving "for each bestie on this bus" πβ¨
Definition at line 261 of file rte_devargs.h.
π§ Enumeration Type Documentation π§
enum rte_devtype
Type of generic device. like, which kind of device, okay? π
Definition at line 56 of file rte_devargs.h.
π Function Documentation π
int rte_devargs_parse (struct rte_devargs * da, const char * dev)
Parse a device string.
Verify that a bus is capable of handling the device passed in argument. Store which bus will handle the device, its name and the eventual device parameters.
The syntax is:
bus:device_identifier,arg1=val1,arg2=val2
where "bus:" is the bus name followed by any character separator. The bus name is optional. If no bus name is specified, each bus will attempt to recognize the device identifier. The first one to succeed will be used. it's a whole audition, and the first bus that says "yes that's mine" wins the role π€
Examples:
pci:0000:05.00.0,arg=val
05.00.0,arg=val
vdev:net_ring0
Parameters
daβ The devargs structure holding the device information.devβ String describing a device.
Returns
0on success.- Negative errno on error.
int rte_devargs_parsef (struct rte_devargs * da, const char * format, ...)
Parse a device string.
Verify that a bus is capable of handling the device passed in argument. Store which bus will handle the device, its name and the eventual device parameters.
The device string is built with a printf-like syntax. so you get to be fancy with formatting, slay π
The syntax is:
bus:device_identifier,arg1=val1,arg2=val2
where "bus:" is the bus name followed by any character separator. The bus name is optional. If no bus name is specified, each bus will attempt to recognize the device identifier. The first one to succeed will be used.
Examples:
pci:0000:05.00.0,arg=val
05.00.0,arg=val
vdev:net_ring0
Parameters
daβ The devargs structure holding the device information.formatβ Format string describing a device.
Returns
0on success.- Negative errno on error.
int void rte_devargs_reset (struct rte_devargs * da)
Free resources in devargs. releasing the resources, letting it go, very healing πΏ
Parameters
daβ The devargs structure holding the device information.
int rte_devargs_insert (struct rte_devargs ** da)
Insert an rte_devargs in the global list.
Parameters
daβ The devargs structure to insert. If a devargs for the same device is already inserted, it will be updated and returned. It means*dapointer can change. β οΈ yes bestie, the pointer can change on you, keep up.
Returns
0on success- Negative on error.
int rte_devargs_add (enum rte_devtype devtype, const char * devargs_str)
Add a device to the user device list β see rte_devargs_parse() for details, that one's got the full lore.
Parameters
devtypeβ The type of the device.devargs_strβ The arguments as given by the user.
Returns
0on success- A negative value on error
int rte_devargs_remove (struct rte_devargs * devargs)
Remove a device from the user device list. Its resources are freed. If the devargs cannot be found, nothing happens. no drama, no error, it's just quiet π€«
Parameters
devargsβ The instance or a copy of devargs to remove.
Returns
0 on success. <0 on error. >0 if the devargs was not within the user device list. yes there's a third answer, read the return value, i'm begging π
unsigned int rte_devargs_type_count (enum rte_devtype devtype)
Count the number of user devices of a specified type. a headcount, but make it typed β¨
Parameters
devtypeβ The type of the devices to counted.
Returns
The number of devices.
void rte_devargs_dump (FILE * f)
This function dumps the list of user device and their arguments. spilling all the tea, to a file π΅
Parameters
fβ A pointer to a file for output
struct rte_devargs * rte_devargs_next (const char * busname, const struct rte_devargs * start)
Find next rte_devargs matching the provided bus name.
Parameters
busnameβ Limit the iteration to devargs related to buses matching this name. Will return any nextrte_devargsifNULL.startβ Starting iteration point. The iteration will start at the firstrte_devargsifNULL.
Returns
Next rte_devargs entry matching the requested bus, NULL if there is none. if it's NULL, that's it, the end, credits rolling π
π Author π
Generated automatically by Doxygen for DPDK from the source code. yes the docs wrote themselves, iconic behaviour honestly π€π
okay that's the whole page bestie, every single flag, macro, line number and return value accounted for, no cap π«Ά
and that's a wrap on rte_devargs.h(3) β brought to you by DPDK, Version 25.11.3, straight from the source code, mwah πβ¨
π¦ where this page comes from
- ubuntu resolute: dpdk-doc 25.11.3-0ubuntu0.26.04.1 Β· BSD-3-Clause
- ubuntu stonking: dpdk-doc 25.11.3-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms