[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