[dpdk-dev,RFC,v2,14/28] eal/pci: Add rte_eal_devargs_remove
Commit Message
The function removes a specified devargs from devargs_list.
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
---
lib/librte_eal/common/eal_common_devargs.c | 13 +++++++++++++
lib/librte_eal/common/include/rte_devargs.h | 18 ++++++++++++++++++
2 files changed, 31 insertions(+)
@@ -137,6 +137,19 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)
return 0;
}
+/* remove it from the devargs_list */
+void
+rte_eal_devargs_remove(enum rte_devtype devtype, void *args)
+{
+ struct rte_devargs *devargs;
+
+ devargs = rte_eal_devargs_find(devtype, args);
+ if (devargs == NULL)
+ return;
+
+ TAILQ_REMOVE(&devargs_list, devargs, next);
+}
+
/* count the number of devices of a specified type */
unsigned int
rte_eal_devargs_type_count(enum rte_devtype devtype)
@@ -123,6 +123,24 @@ extern struct rte_devargs_list devargs_list;
int rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str);
/**
+ * Remove a device form the user device list
+ *
+ * For PCI devices, the format of arguments string is "PCI_ADDR". It shouldn't
+ * involves parameters for the device. Example: "08:00.1".
+ *
+ * For virtual devices, the format of arguments string is "DRIVER_NAME*". It
+ * shouldn't involves parameters for the device. Example: "eth_ring". The
+ * validity of the driver name is not checked by this function, it is done
+ * when closing the drivers.
+ *
+ * @param devtype
+ * The type of the device.
+ * @param name
+ * The name of the device.
+ */
+void rte_eal_devargs_remove(enum rte_devtype devtype, void *args);
+
+/**
* Count the number of user devices of a specified type
*
* @param devtype