On 8/25/2025 11:38 AM, Stephen Hemminger wrote:
> The version of sys/queue.h on Linux from glibc was derived
> from an older version of BSD and is missing several key macros
> such as LIST_FOREACH_SAFE. This leads to drivers re-implementing
> the macros (sometimes badly) and other bugs.
> Introduce a version of queue.h derived from the current FreeBSD.
> 
> Signed-off-by: Stephen Hemminger <step...@networkplumber.org>

...

> 
> diff --git a/doc/guides/contributing/coding_style.rst 
> b/doc/guides/contributing/coding_style.rst
> index 243a3c2959..097042dd22 100644
> --- a/doc/guides/contributing/coding_style.rst
> +++ b/doc/guides/contributing/coding_style.rst
> @@ -324,12 +324,12 @@ Structure Declarations
>  Queues
>  ~~~~~~
>  
> -Use queue(3) macros rather than rolling your own lists, whenever possible.
> +Use queue(3) macros defined in <rte_queue.h> rather than rolling your own 
> lists.

rte_queue.h -> rte_bsd_queue.h

>  Thus, the previous example would be better written:
>  
>  .. code-block:: c
>  
> - #include <sys/queue.h>
> + #include <rte_queue.h>

rte_queue.h -> rte_bsd_queue.h

>  
>   struct foo {
>           LIST_ENTRY(foo) link;      /* Use queue macros for foo lists. */
> diff --git a/doc/guides/rel_notes/release_25_11.rst 
> b/doc/guides/rel_notes/release_25_11.rst
> index ccad6d89ff..586a3cff28 100644
> --- a/doc/guides/rel_notes/release_25_11.rst
> +++ b/doc/guides/rel_notes/release_25_11.rst
> @@ -55,6 +55,9 @@ New Features
>       Also, make sure to start the actual text at the margin.
>       =======================================================
>  
> +* Added ``rte_queue.h`` which is clone of BSD queue.h header that is
> +  portable across all OS's.

rte_queue.h -> rte_bsd_queue.h

...

Reply via email to