From: Shreyansh Jain <shreyansh.jain@nxp.com>
To: Gaetan Rivet <gaetan.rivet@6wind.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v11 11/25] eal/dev: implement device iteration
Date: Thu, 12 Jul 2018 16:28:27 +0530 [thread overview]
Message-ID: <1a96a4a1-71fd-74ef-f599-22dc21134ed4@nxp.com> (raw)
In-Reply-To: <d5ea19aaec29793e7e9570c5458475df1f60eab3.1531345404.git.gaetan.rivet@6wind.com>
On Thursday 12 July 2018 03:15 AM, Gaetan Rivet wrote:
> Use the iteration hooks in the abstraction layers to perform the
> requested filtering on the internal device lists.
>
> Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
> ---
> lib/librte_eal/common/eal_common_dev.c | 168 ++++++++++++++++++++++++
> lib/librte_eal/common/include/rte_dev.h | 26 ++++
> lib/librte_eal/rte_eal_version.map | 1 +
> 3 files changed, 195 insertions(+)
>
> diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
> index 63e329bd8..b78845f02 100644
> --- a/lib/librte_eal/common/eal_common_dev.c
> +++ b/lib/librte_eal/common/eal_common_dev.c
> @@ -45,6 +45,28 @@ static struct dev_event_cb_list dev_event_cbs;
> /* spinlock for device callbacks */
> static rte_spinlock_t dev_event_lock = RTE_SPINLOCK_INITIALIZER;
>
> +struct dev_next_ctx {
> + struct rte_dev_iterator *it;
> + const char *bus_str;
> + const char *cls_str;
> +};
> +
> +#define CTX(it, bus_str, cls_str) \
> + (&(const struct dev_next_ctx){ \
> + .it = it, \
> + .bus_str = bus_str, \
> + .cls_str = cls_str, \
> + })
> +
> +#define ITCTX(ptr) \
> + (((struct dev_next_ctx *)(intptr_t)ptr)->it)
> +
> +#define BUSCTX(ptr) \
> + (((struct dev_next_ctx *)(intptr_t)ptr)->bus_str)
> +
> +#define CLSCTX(ptr) \
> + (((struct dev_next_ctx *)(intptr_t)ptr)->cls_str)
> +
> static int cmp_detached_dev_name(const struct rte_device *dev,
> const void *_name)
> {
> @@ -398,3 +420,149 @@ rte_dev_iterator_init(struct rte_dev_iterator *it,
> get_out:
> return -rte_errno;
> }
> +
> +static char *
> +dev_str_sane_copy(const char *str)
> +{
> + size_t end;
> + char *copy;
> +
> + end = strcspn(str, ",/");
> + if (str[end] == ',') {
> + copy = strdup(&str[end + 1]);
> + } else {
> + /* '/' or '\0' */
> + copy = strdup("");
> + }
Though it doesn't change anything functionally, if you can separate
blocks of if-else with new lines, it really makes it easier to read.
Like here...
> + if (copy == NULL) {
> + rte_errno = ENOMEM;
> + } else {
> + char *slash;
> +
> + slash = strchr(copy, '/');
> + if (slash != NULL)
> + slash[0] = '\0';
> + }
> + return copy;
> +}
> +
> +static int
> +class_next_dev_cmp(const struct rte_class *cls,
> + const void *ctx)
> +{
> + struct rte_dev_iterator *it;
> + const char *cls_str = NULL;
> + void *dev;
> +
> + if (cls->dev_iterate == NULL)
> + return 1;
> + it = ITCTX(ctx);
> + cls_str = CLSCTX(ctx);
> + dev = it->class_device;
> + /* it->cls_str != NULL means a class
> + * was specified in the devstr.
> + */
> + if (it->cls_str != NULL && cls != it->cls)
> + return 1;
> + /* If an error occurred previously,
> + * no need to test further.
> + */
> + if (rte_errno != 0)
> + return -1;
I am guessing here by '..error occurred previously..' you mean
sane_copy. If so, why wait until this point to return? Anyway the caller
(rte_bus_find, probably) would only look for '0' or non-zero.
> + dev = cls->dev_iterate(dev, cls_str, it);
> + it->class_device = dev;
> + return dev == NULL;
> +}
> +
> +static int
> +bus_next_dev_cmp(const struct rte_bus *bus,
> + const void *ctx)
> +{
> + struct rte_device *dev = NULL;
> + struct rte_class *cls = NULL;
> + struct rte_dev_iterator *it;
> + const char *bus_str = NULL;
> +
> + if (bus->dev_iterate == NULL)
> + return 1;
> + it = ITCTX(ctx);
> + bus_str = BUSCTX(ctx);
> + dev = it->device;
> + /* it->bus_str != NULL means a bus
> + * was specified in the devstr.
> + */
> + if (it->bus_str != NULL && bus != it->bus)
> + return 1;
> + /* If an error occurred previously,
> + * no need to test further.
> + */
> + if (rte_errno != 0)
> + return -1;
> + if (it->cls_str == NULL) {
> + dev = bus->dev_iterate(dev, bus_str, it);
> + goto end;
This is slightly confusing. If it->cls_str == NULL, you do
bus->dev_iterate... but
> + }
> + /* cls_str != NULL */
> + if (dev == NULL) {
> +next_dev_on_bus:
> + dev = bus->dev_iterate(dev, bus_str, it);
When cls_str!=NULL, you still do bus->dev_iterate...
So, maybe they are OR case resulting in check of dev==NULL and return
(as being done right now by jumping to out)...?
And, how can bus iterate over a 'null' device?
> + it->device = dev;
> + }
> + if (dev == NULL)
> + return 1;
Maybe, this check should move in the if(dev==NULL) above - that way, it
can in path of 'next_dev_on_bus' yet do the same as function as its
current location.
> + if (it->cls != NULL)
In what case would (it->cls_str == NULL) but (it->cls != NULL)?
> + cls = TAILQ_PREV(it->cls, rte_class_list, next);
> + cls = rte_class_find(cls, class_next_dev_cmp, ctx);
> + if (cls != NULL) {
> + it->cls = cls;
> + goto end;
> + }
> + goto next_dev_on_bus;
Maybe I have completely mixed your intention of this function. So, if
you still find the above comments naive - maybe you can tell me what you
are attempting here?
Is it: find next bus and stop if no class specified. find next class as
well, iff that too was specified?
Reason I am confused is that bus_next_dev_cmp attempts to compare both -
bus and class, yet class_next_dev_cmp simply stops by comparing class only.
> +end:
> + it->device = dev;
> + return dev == NULL;
> +}
A new line should be added here - start of a new function.
> +__rte_experimental
> +struct rte_device *
> +rte_dev_iterator_next(struct rte_dev_iterator *it)
> +{
> + struct rte_bus *bus = NULL;
> + int old_errno = rte_errno;
> + char *bus_str = NULL;
> + char *cls_str = NULL;
> +
> + rte_errno = 0;
> + if (it->bus_str == NULL && it->cls_str == NULL) {
> + /* Invalid iterator. */
> + rte_errno = EINVAL;
> + return NULL;
> + }
> + if (it->bus != NULL)
> + bus = TAILQ_PREV(it->bus, rte_bus_list, next);
> + if (it->bus_str != NULL) {
> + bus_str = dev_str_sane_copy(it->bus_str);
> + if (bus_str == NULL)
> + goto out;
> + }
> + if (it->cls_str != NULL) {
> + cls_str = dev_str_sane_copy(it->cls_str);
> + if (cls_str == NULL)
> + goto out;
> + }
> + while ((bus = rte_bus_find(bus, bus_next_dev_cmp,
> + CTX(it, bus_str, cls_str)))) {
> + if (it->device != NULL) {
> + it->bus = bus;
> + goto out;
> + }
> + if (it->bus_str != NULL ||
> + rte_errno != 0)
> + break;
> + }
> + if (rte_errno == 0)
> + rte_errno = old_errno;
> +out:
> + free(bus_str);
> + free(cls_str);
> + return it->device;
> +}
> diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h
> index fdc812ff8..8638a2bbd 100644
> --- a/lib/librte_eal/common/include/rte_dev.h
> +++ b/lib/librte_eal/common/include/rte_dev.h
> @@ -355,6 +355,32 @@ __rte_experimental
> int
> rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str);
>
> +/**
> + * Iterates on a device iterator.
> + *
> + * Generates a new rte_device handle corresponding to the next element
> + * in the list described in comprehension by the iterator.
> + *
> + * The next object is returned, and the iterator is updated.
> + *
> + * @param it
> + * Device iterator handle.
> + *
> + * @return
> + * An rte_device handle if found.
> + * NULL if an error occurred (rte_errno is set).
> + * NULL if no device could be found (rte_errno is not set).
> + */
> +__rte_experimental
> +struct rte_device *
> +rte_dev_iterator_next(struct rte_dev_iterator *it);
> +
> +#define RTE_DEV_FOREACH(dev, devstr, it) \
> + for (rte_dev_iterator_init(it, devstr), \
> + dev = rte_dev_iterator_next(it); \
> + dev != NULL; \
> + dev = rte_dev_iterator_next(it))
> +
> #ifdef __cplusplus
> }
> #endif
> diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
> index ac04120d6..4cd5ab3df 100644
> --- a/lib/librte_eal/rte_eal_version.map
> +++ b/lib/librte_eal/rte_eal_version.map
> @@ -252,6 +252,7 @@ EXPERIMENTAL {
> rte_dev_event_monitor_start;
> rte_dev_event_monitor_stop;
> rte_dev_iterator_init;
> + rte_dev_iterator_next;
> rte_devargs_add;
> rte_devargs_dump;
> rte_devargs_insert;
>
next prev parent reply other threads:[~2018-07-12 10:58 UTC|newest]
Thread overview: 364+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-15 17:49 [dpdk-dev] [PATCH v1 00/18] Device querying Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 01/18] eal: introduce dtor macros Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 02/18] eal: introduce device class abstraction Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 03/18] eal/class: register destructor Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 04/18] eal: add lightweight kvarg parsing utility Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 05/18] eal/dev: add device iterator interface Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 06/18] eal/dev: implement device iteration initialization Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 07/18] eal/class: add device iteration Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 08/18] eal/bus: " Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 09/18] eal/dev: implement " Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 10/18] ethdev: register ether layer as a class Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 11/18] ethdev: add device matching field name Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 12/18] bus/pci: fix find device implementation Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 13/18] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 14/18] bus/pci: add device matching field id Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 15/18] bus/vdev: fix find device implementation Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 16/18] bus/vdev: implement device iteration Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 17/18] bus/vdev: add device matching field driver Gaetan Rivet
2018-03-15 17:49 ` [dpdk-dev] [PATCH v1 18/18] app/testpmd: add show device command Gaetan Rivet
2018-03-19 11:33 ` Gaëtan Rivet
2018-03-20 17:51 ` [dpdk-dev] [PATCH v1 00/18] Device querying Gaëtan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 " Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 01/18] eal: introduce dtor macros Gaetan Rivet
2018-03-22 11:35 ` Neil Horman
2018-03-22 13:51 ` Neil Horman
2018-03-22 15:56 ` Gaëtan Rivet
2018-03-22 15:58 ` [dpdk-dev] [PATCH] eal: list acceptable init priorities Gaetan Rivet
2018-03-23 0:40 ` Neil Horman
2018-03-23 0:38 ` [dpdk-dev] [PATCH v2 01/18] eal: introduce dtor macros Neil Horman
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 02/18] eal: introduce device class abstraction Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 03/18] eal/class: register destructor Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 04/18] eal: add lightweight kvarg parsing utility Gaetan Rivet
2018-03-21 17:32 ` Wiles, Keith
2018-03-21 17:58 ` Gaëtan Rivet
2018-03-22 14:10 ` Neil Horman
2018-03-22 16:27 ` Gaëtan Rivet
2018-03-23 0:53 ` Neil Horman
2018-03-23 9:31 ` Gaëtan Rivet
2018-03-23 11:54 ` Neil Horman
2018-03-23 13:12 ` Gaëtan Rivet
2018-03-23 18:45 ` [dpdk-dev] [PATCH 1/2] kvargs: the life of the party Gaetan Rivet
2018-03-23 18:45 ` [dpdk-dev] [PATCH 2/2] dev: use rte_kvargs Gaetan Rivet
2018-03-26 11:38 ` Neil Horman
2018-03-26 13:59 ` Gaëtan Rivet
2018-03-26 15:14 ` Wiles, Keith
2018-03-26 11:23 ` [dpdk-dev] [PATCH v2 04/18] eal: add lightweight kvarg parsing utility Neil Horman
2018-03-23 13:15 ` Wiles, Keith
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 05/18] eal/dev: add device iterator interface Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 06/18] eal/class: add device iteration Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 07/18] eal/bus: " Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 08/18] eal/dev: implement device iteration initialization Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 09/18] eal/dev: implement device iteration Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 10/18] bus/pci: fix find device implementation Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 11/18] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 12/18] bus/pci: add device matching field id Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 13/18] bus/vdev: fix find device implementation Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 14/18] bus/vdev: implement device iteration Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 15/18] bus/vdev: add device matching field driver Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 16/18] ethdev: register ether layer as a class Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 17/18] ethdev: add device matching field name Gaetan Rivet
2018-03-21 17:15 ` [dpdk-dev] [PATCH v2 18/18] app/testpmd: add show device command Gaetan Rivet
2018-03-22 11:31 ` [dpdk-dev] [PATCH v2 00/18] Device querying Bruce Richardson
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 00/20] " Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 01/20] kvargs: remove rte log dependency Gaetan Rivet
2018-03-27 18:19 ` Neil Horman
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 02/20] kvargs: build before EAL Gaetan Rivet
2018-03-27 9:12 ` Bruce Richardson
2018-03-27 9:53 ` Gaëtan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 03/20] eal: list acceptable init priorities Gaetan Rivet
2018-03-27 7:18 ` Shreyansh Jain
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 04/20] eal: introduce dtor macros Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 05/20] eal: introduce device class abstraction Gaetan Rivet
2018-03-27 8:38 ` Shreyansh Jain
2018-03-27 9:51 ` Gaëtan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 06/20] eal/class: register destructor Gaetan Rivet
2018-03-27 8:42 ` Shreyansh Jain
2018-03-27 8:49 ` Gaëtan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 07/20] eal/dev: add device iterator interface Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 08/20] eal/class: add device iteration Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 09/20] eal/bus: " Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 10/20] eal/dev: implement device iteration initialization Gaetan Rivet
2018-03-27 11:47 ` Neil Horman
2018-03-27 12:40 ` Gaëtan Rivet
2018-03-27 13:04 ` Gaëtan Rivet
2018-03-27 20:23 ` Gaëtan Rivet
2018-03-27 23:26 ` Neil Horman
2018-03-28 12:48 ` Gaëtan Rivet
2018-03-27 13:08 ` Wiles, Keith
2018-03-27 18:26 ` Neil Horman
2018-03-27 20:20 ` Gaëtan Rivet
2018-03-27 20:28 ` Bruce Richardson
2018-03-27 20:35 ` Gaëtan Rivet
2018-03-27 20:48 ` Richardson, Bruce
2018-03-27 23:53 ` Neil Horman
2018-03-28 8:10 ` Gaëtan Rivet
2018-03-28 11:17 ` Neil Horman
2018-04-22 22:29 ` Thomas Monjalon
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 11/20] eal/dev: implement device iteration Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 12/20] bus/pci: fix find device implementation Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 13/20] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 14/20] bus/pci: add device matching field id Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 15/20] bus/vdev: fix find device implementation Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 16/20] bus/vdev: implement device iteration Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 17/20] bus/vdev: add device matching field driver Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 18/20] ethdev: register ether layer as a class Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 19/20] ethdev: add device matching field name Gaetan Rivet
2018-03-26 23:18 ` [dpdk-dev] [PATCH v3 20/20] app/testpmd: add show device command Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 00/20] Device querying Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 01/20] kvargs: build before EAL Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 02/20] eal: list acceptable init priorities Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 03/20] eal: introduce dtor macros Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 04/20] eal: introduce device class abstraction Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 05/20] eal/class: register destructor Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 06/20] eal/dev: add device iterator interface Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 07/20] eal/class: add device iteration Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 08/20] eal/bus: " Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 09/20] eal/dev: implement device iteration initialization Gaetan Rivet
2018-03-30 15:22 ` Wiles, Keith
2018-03-30 15:53 ` Gaëtan Rivet
2018-03-30 16:22 ` Wiles, Keith
2018-03-31 15:33 ` Gaëtan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 10/20] eal/dev: implement device iteration Gaetan Rivet
2018-04-09 7:28 ` Matan Azrad
2018-04-09 8:16 ` Gaëtan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 11/20] kvargs: add generic string matching callback Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 12/20] bus/pci: fix find device implementation Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 13/20] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 14/20] bus/pci: add device matching field id Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 15/20] bus/vdev: fix find device implementation Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 16/20] bus/vdev: implement device iteration Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 17/20] bus/vdev: add device matching field driver Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 18/20] ethdev: register ether layer as a class Gaetan Rivet
2018-04-09 7:41 ` Matan Azrad
2018-04-09 7:47 ` Gaëtan Rivet
2018-04-09 7:58 ` Matan Azrad
2018-04-09 8:12 ` Gaëtan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 19/20] ethdev: add device matching field name Gaetan Rivet
2018-03-29 21:23 ` [dpdk-dev] [PATCH v4 20/20] app/testpmd: add show device command Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 00/21] Device querying Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 01/21] kvargs: build before EAL Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 02/21] eal: list acceptable init priorities Gaetan Rivet
2018-04-12 11:28 ` Neil Horman
2018-04-12 21:57 ` Gaëtan Rivet
2018-04-13 11:42 ` Neil Horman
2018-04-13 12:52 ` Shreyansh Jain
2018-04-13 12:55 ` Gaëtan Rivet
2018-04-14 18:45 ` Neil Horman
2018-04-15 15:13 ` Gaëtan Rivet
2018-04-16 11:31 ` Neil Horman
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 03/21] eal: introduce dtor macros Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 04/21] eal: introduce device class abstraction Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 05/21] eal/class: register destructor Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 06/21] eal/dev: add device iterator interface Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 07/21] eal/class: add device iteration Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 08/21] eal/bus: " Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 09/21] eal/dev: implement device iteration initialization Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 10/21] eal/dev: implement device iteration Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 11/21] kvargs: add generic string matching callback Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 12/21] bus/pci: fix find device implementation Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 13/21] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 14/21] bus/pci: add device matching field id Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 15/21] bus/vdev: fix find device implementation Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 16/21] bus/vdev: implement device iteration Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 17/21] bus/vdev: add device matching field driver Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 18/21] ethdev: add private generic device iterator Gaetan Rivet
2018-04-11 8:41 ` Gaëtan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 19/21] ethdev: register ether layer as a class Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 20/21] ethdev: add device matching field name Gaetan Rivet
2018-04-11 0:04 ` [dpdk-dev] [PATCH v5 21/21] app/testpmd: add show device command Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 00/22] Device querying Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 01/22] kvargs: build before EAL Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 02/22] eal: list acceptable init priorities Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 03/22] eal: add last init priority Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 04/22] eal: introduce dtor macros Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 05/22] eal: introduce device class abstraction Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 06/22] eal/class: register destructor Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 07/22] eal/dev: add device iterator interface Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 08/22] eal/class: add device iteration Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 09/22] eal/bus: " Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 10/22] eal/dev: implement device iteration initialization Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 11/22] eal/dev: implement device iteration Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 12/22] kvargs: add generic string matching callback Gaetan Rivet
2018-04-13 14:49 ` Shreyansh Jain
2018-04-13 15:06 ` Gaëtan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 13/22] bus/pci: fix find device implementation Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 14/22] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 15/22] bus/pci: add device matching field id Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 16/22] bus/vdev: fix find device implementation Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 17/22] bus/vdev: implement device iteration Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 18/22] bus/vdev: add device matching field driver Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 19/22] ethdev: add private generic device iterator Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 20/22] ethdev: register ether layer as a class Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 21/22] ethdev: add device matching field name Gaetan Rivet
2018-04-13 13:22 ` [dpdk-dev] [PATCH v6 22/22] app/testpmd: add show device command Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 00/22] Device querying Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 01/22] kvargs: build before EAL Gaetan Rivet
2018-06-14 14:10 ` Bruce Richardson
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 02/22] eal: list acceptable init priorities Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 03/22] eal: add last init priority Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 04/22] eal: introduce dtor macros Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 05/22] eal: introduce device class abstraction Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 06/22] eal/class: register destructor Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 07/22] eal/dev: add device iterator interface Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 08/22] eal/class: add device iteration Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 09/22] eal/bus: " Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 10/22] eal/dev: implement device iteration initialization Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 11/22] eal/dev: implement device iteration Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 12/22] kvargs: add generic string matching callback Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 13/22] bus/pci: fix find device implementation Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 14/22] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 15/22] bus/pci: add device matching field id Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 16/22] bus/vdev: fix find device implementation Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 17/22] bus/vdev: implement device iteration Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 18/22] bus/vdev: add device matching field driver Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 19/22] ethdev: add private generic device iterator Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 20/22] ethdev: register ether layer as a class Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 21/22] ethdev: add device matching field name Gaetan Rivet
2018-04-15 15:07 ` [dpdk-dev] [PATCH v7 22/22] app/testpmd: add show device command Gaetan Rivet
2018-06-14 10:59 ` Iremonger, Bernard
2018-06-14 11:35 ` Gaëtan Rivet
2018-04-22 22:54 ` [dpdk-dev] [PATCH v7 00/22] Device querying Thomas Monjalon
2018-04-24 10:03 ` Gaëtan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 00/21] " Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 01/21] devargs: add non-variadic parsing function Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 02/21] kvargs: build before EAL Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 03/21] kvargs: introduce a more flexible parsing function Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 04/21] eal: introduce dtor macros Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 05/21] eal: introduce device class abstraction Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 06/21] eal/class: register destructor Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 07/21] devargs: add function to parse device layers Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 08/21] eal/dev: add device iterator interface Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 09/21] eal/class: add device iteration Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 10/21] eal/bus: " Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 11/21] eal/dev: implement device iteration initialization Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 12/21] eal/dev: implement device iteration Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 13/21] kvargs: add generic string matching callback Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 14/21] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 15/21] bus/pci: add device matching field id Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 16/21] bus/vdev: implement device iteration Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 17/21] bus/vdev: add device matching field driver Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 18/21] ethdev: add private generic device iterator Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 19/21] ethdev: register ether layer as a class Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 20/21] ethdev: add device matching field name Gaetan Rivet
2018-06-26 16:56 ` [dpdk-dev] [PATCH v8 21/21] app/testpmd: add show device command Gaetan Rivet
2018-06-28 10:03 ` Iremonger, Bernard
2018-06-28 10:09 ` Gaëtan Rivet
2018-06-28 11:28 ` Iremonger, Bernard
2018-06-28 11:56 ` Gaëtan Rivet
2018-06-27 10:55 ` [dpdk-dev] [PATCH v8 00/21] Device querying Bruce Richardson
2018-06-27 11:29 ` Gaëtan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 00/27] " Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 01/27] devargs: add non-variadic parsing function Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 02/27] kvargs: remove error logs Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 03/27] kvargs: build before EAL Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 04/27] kvargs: introduce a more flexible parsing function Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 05/27] eal: introduce dtor macros Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 06/27] eal: introduce device class abstraction Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 07/27] eal/class: register destructor Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 08/27] devargs: add function to parse device layers Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 09/27] eal/dev: add device iterator interface Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 10/27] eal/class: add device iteration Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 11/27] eal/bus: " Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 12/27] eal/dev: implement device iteration initialization Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 13/27] eal/dev: implement device iteration Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 14/27] kvargs: add generic string matching callback Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 15/27] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-07-03 22:14 ` [dpdk-dev] [PATCH v9 16/27] bus/pci: add device matching field id Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 17/27] bus/vdev: implement device iteration Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 18/27] bus/vdev: add device matching field driver Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 19/27] ethdev: add private generic device iterator Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 20/27] ethdev: register ether layer as a class Gaetan Rivet
2018-07-04 12:20 ` Andrew Rybchenko
2018-07-05 9:36 ` Gaëtan Rivet
2018-07-05 11:13 ` Bruce Richardson
2018-07-05 11:54 ` Gaëtan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 21/27] ethdev: add device matching field name Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 22/27] app/testpmd: add show device command Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 23/27] bus/pci: pre-process declarative PCI devargs Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 24/27] bus/vdev: pre-process declarative vdev devargs Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 25/27] bus/pci: process declarative PCI devargs Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 26/27] ethdev: process declarative eth devargs Gaetan Rivet
2018-07-03 22:15 ` [dpdk-dev] [PATCH v9 27/27] eal: add generic dev parameter Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 00/27] Device querying Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 01/27] devargs: add non-variadic parsing function Gaetan Rivet
2018-07-05 14:44 ` Thomas Monjalon
2018-07-11 11:46 ` Shreyansh Jain
2018-07-11 12:01 ` Gaëtan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 02/27] kvargs: remove error logs Gaetan Rivet
2018-07-05 21:51 ` Thomas Monjalon
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 03/27] kvargs: build before EAL Gaetan Rivet
2018-07-05 21:50 ` Thomas Monjalon
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 04/27] kvargs: introduce a more flexible parsing function Gaetan Rivet
2018-07-05 22:00 ` Thomas Monjalon
2018-07-11 11:55 ` Shreyansh Jain
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 05/27] eal: introduce dtor macros Gaetan Rivet
2018-07-06 4:17 ` Shreyansh Jain
2018-07-10 11:40 ` Thomas Monjalon
2018-07-10 12:56 ` Gaëtan Rivet
2018-07-10 13:06 ` Thomas Monjalon
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 06/27] eal: introduce device class abstraction Gaetan Rivet
2018-07-11 8:10 ` Thomas Monjalon
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 07/27] eal/class: register destructor Gaetan Rivet
2018-07-11 8:12 ` Thomas Monjalon
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 08/27] devargs: add function to parse device layers Gaetan Rivet
2018-07-11 8:19 ` Thomas Monjalon
2018-07-11 8:41 ` Gaëtan Rivet
2018-07-11 9:30 ` Thomas Monjalon
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 09/27] eal/dev: add device iterator interface Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 10/27] eal/class: add device iteration Gaetan Rivet
2018-07-11 9:47 ` Thomas Monjalon
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 11/27] eal/bus: " Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 12/27] eal/dev: implement device iteration initialization Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 13/27] eal/dev: implement device iteration Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 14/27] kvargs: add generic string matching callback Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 15/27] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 16/27] bus/pci: add device matching field id Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 17/27] bus/vdev: implement device iteration Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 18/27] bus/vdev: add device matching field driver Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 19/27] ethdev: add private generic device iterator Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 20/27] ethdev: register ether layer as a class Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 21/27] ethdev: add device matching field name Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 22/27] app/testpmd: add show device command Gaetan Rivet
2018-07-10 14:45 ` Iremonger, Bernard
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 23/27] bus/pci: pre-process declarative PCI devargs Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 24/27] bus/vdev: pre-process declarative vdev devargs Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 25/27] bus/pci: process declarative PCI devargs Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 26/27] ethdev: process declarative eth devargs Gaetan Rivet
2018-07-05 11:48 ` [dpdk-dev] [PATCH v10 27/27] eal: add generic dev parameter Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 00/25] Device querying Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 01/25] devargs: use rte-log functions Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 02/25] devargs: add non-variadic parsing function Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 03/25] kvargs: remove error logs Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 04/25] kvargs: build before EAL Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 05/25] kvargs: introduce a more flexible parsing function Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 06/25] eal: introduce dtor macros Gaetan Rivet
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 07/25] eal: introduce device class abstraction Gaetan Rivet
2018-07-12 6:49 ` Shreyansh Jain
2018-07-12 7:41 ` Gaëtan Rivet
2018-07-14 10:35 ` Thomas Monjalon
2018-07-14 6:37 ` Thomas Monjalon
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 08/25] devargs: add function to parse device layers Gaetan Rivet
2018-07-12 9:48 ` Shreyansh Jain
2018-07-14 10:30 ` Thomas Monjalon
2018-07-11 21:44 ` [dpdk-dev] [PATCH v11 09/25] eal/dev: add device iterator interface Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 10/25] eal/dev: implement device iteration initialization Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 11/25] eal/dev: implement device iteration Gaetan Rivet
2018-07-12 10:58 ` Shreyansh Jain [this message]
2018-07-12 15:08 ` Gaëtan Rivet
2018-07-13 7:06 ` Shreyansh Jain
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 12/25] kvargs: add generic string matching callback Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 13/25] bus/pci: implement device iteration and comparison Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 14/25] bus/pci: add device matching field id Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 15/25] bus/vdev: implement device iteration Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 16/25] bus/vdev: add device matching field driver Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 17/25] ethdev: add private generic device iterator Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 18/25] ethdev: register ether layer as a class Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 19/25] ethdev: add device matching field name Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 20/25] app/testpmd: add show device command Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 21/25] bus/pci: pre-process declarative PCI devargs Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 22/25] bus/vdev: pre-process declarative vdev devargs Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 23/25] bus/pci: process declarative PCI devargs Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 24/25] ethdev: process declarative eth devargs Gaetan Rivet
2018-07-11 21:45 ` [dpdk-dev] [PATCH v11 25/25] eal: add generic dev parameter Gaetan Rivet
2018-07-15 21:54 ` [dpdk-dev] [PATCH v11 00/25] Device querying Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1a96a4a1-71fd-74ef-f599-22dc21134ed4@nxp.com \
--to=shreyansh.jain@nxp.com \
--cc=dev@dpdk.org \
--cc=gaetan.rivet@6wind.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).