[dpdk-dev] [PATCH v6] eal: remove sys/queue.h from public headers.
Dmitry Kozlyuk
dmitry.kozliuk at gmail.com
Wed Aug 18 00:06:18 CEST 2021
Hi William,
just a few minor corrections remain, please see inline.
2021-08-14 02:51 (UTC+0000), William Tu:
[...]
> diff --git a/lib/eal/common/eal_common_devargs.c b/lib/eal/common/eal_common_devargs.c
> index 23aaf8b7e4..7edc6798fe 100644
> --- a/lib/eal/common/eal_common_devargs.c
> +++ b/lib/eal/common/eal_common_devargs.c
> @@ -9,6 +9,7 @@
> #include <stdio.h>
> #include <string.h>
> #include <stdarg.h>
> +#include <sys/queue.h>
>
> #include <rte_bus.h>
> #include <rte_class.h>
> @@ -18,6 +19,7 @@
> #include <rte_errno.h>
> #include <rte_kvargs.h>
> #include <rte_log.h>
> +#include <rte_os.h>
Not needed, included by `rte_bus.h` -> `rte_common.h` -> `rte_os.h`.
> #include <rte_tailq.h>
> #include "eal_private.h"
If you included <sys/queue.h> from `eal_private.h`,
you would need to modify much fewer files in EAL.
>
> @@ -291,7 +293,7 @@ rte_devargs_insert(struct rte_devargs **da)
> if (*da == NULL || (*da)->bus == NULL)
> return -1;
>
> - TAILQ_FOREACH_SAFE(listed_da, &devargs_list, next, tmp) {
> + RTE_TAILQ_FOREACH_SAFE(listed_da, &devargs_list, next, tmp) {
> if (listed_da == *da)
> /* devargs already in the list */
> return 0;
> @@ -358,7 +360,7 @@ rte_devargs_remove(struct rte_devargs *devargs)
> if (devargs == NULL || devargs->bus == NULL)
> return -1;
>
> - TAILQ_FOREACH_SAFE(d, &devargs_list, next, tmp) {
> + RTE_TAILQ_FOREACH_SAFE(d, &devargs_list, next, tmp) {
> if (strcmp(d->bus->name, devargs->bus->name) == 0 &&
> strcmp(d->name, devargs->name) == 0) {
> TAILQ_REMOVE(&devargs_list, d, next);
[...]
> diff --git a/lib/eal/windows/include/rte_os.h b/lib/eal/windows/include/rte_os.h
> index 66c711d458..54892ab89c 100644
> --- a/lib/eal/windows/include/rte_os.h
> +++ b/lib/eal/windows/include/rte_os.h
> @@ -18,6 +18,37 @@
> extern "C" {
> #endif
Comment about compatibility with the bundled sys/queue.h is lost.
> +#define RTE_TAILQ_HEAD(name, type) \
> +struct name { \
> + struct type *tqh_first; /* first element */ \
> + struct type **tqh_last; /* addr of last next element */ \
> +}
> +#define RTE_TAILQ_ENTRY(type) \
> +struct { \
> + struct type *tqe_next; /* next element */ \
> + struct type **tqe_prev; /* address of previous next element */ \
> +}
> +#define RTE_TAILQ_FOREACH(var, head, field) \
> + for ((var) = RTE_TAILQ_FIRST((head)); \
> + (var); \
> + (var) = RTE_TAILQ_NEXT((var), field))
> +#define RTE_TAILQ_FOREACH_SAFE(var, head, field, tvar) \
> + for ((var) = TAILQ_FIRST((head)); \
> + (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
> + (var) = (tvar))
> +#define RTE_TAILQ_FIRST(head) ((head)->tqh_first)
> +#define RTE_TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
> +#define RTE_STAILQ_HEAD(name, type) \
> +struct name { \
> + struct type *stqh_first;/* first element */ \
> + struct type **stqh_last;/* addr of last next element */ \
> +}
> +#define RTE_STAILQ_ENTRY(type) \
> +struct { \
> + struct type *stqe_next; /* next element */ \
> +}
> +
> +
Redundant newline.
More information about the dev
mailing list