numam-dpdk/drivers/net/bnxt
William Tu f1f6ebc0ea eal: remove sys/queue.h from public headers
Currently there are some public headers that include 'sys/queue.h', which
is not POSIX, but usually provided by the Linux/BSD system library.
(Not in POSIX.1, POSIX.1-2001, or POSIX.1-2008. Present on the BSDs.)
The file is missing on Windows. During the Windows build, DPDK uses a
bundled copy, so building a DPDK library works fine.  But when OVS or other
applications use DPDK as a library, because some DPDK public headers
include 'sys/queue.h', on Windows, it triggers an error due to no such
file.

One solution is to install the 'lib/eal/windows/include/sys/queue.h' into
Windows environment, such as [1]. However, this means DPDK exports the
functionalities of 'sys/queue.h' into the environment, which might cause
symbols, macros, headers clashing with other applications.

The patch fixes it by removing the "#include <sys/queue.h>" from
DPDK public headers, so programs including DPDK headers don't depend
on the system to provide 'sys/queue.h'. When these public headers use
macros such as TAILQ_xxx, we replace it by the ones with RTE_ prefix.
For Windows, we copy the definitions from <sys/queue.h> to rte_os.h
in Windows EAL. Note that these RTE_ macros are compatible with
<sys/queue.h>, both at the level of API (to use with <sys/queue.h>
macros in C files) and ABI (to avoid breaking it).

Additionally, the TAILQ_FOREACH_SAFE is not part of <sys/queue.h>,
the patch replaces it with RTE_TAILQ_FOREACH_SAFE.

[1] http://mails.dpdk.org/archives/dev/2021-August/216304.html

Suggested-by: Nick Connolly <nick.connolly@mayadata.io>
Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Signed-off-by: William Tu <u9012063@gmail.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Narcisa Vasile <navasile@linux.microsoft.com>
2021-10-01 13:09:43 +02:00
..
hcapi/cfa net/bnxt: cleanup ULP parser and mapper 2021-07-08 02:02:14 +02:00
tf_core net/bnxt: add enhancements to TruFlow ULP 2021-09-21 06:42:17 +02:00
tf_ulp eal: remove sys/queue.h from public headers 2021-10-01 13:09:43 +02:00
bnxt_cpr.c net/bnxt: handle pause storm event 2021-07-14 20:29:05 +02:00
bnxt_cpr.h net/bnxt: fix missing barriers in completion handling 2021-07-12 20:38:12 +02:00
bnxt_ethdev.c net/bnxt: fix Rx queue startup state 2021-09-15 02:07:08 +02:00
bnxt_filter.c net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
bnxt_filter.h net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
bnxt_flow.c net/bnxt: use common function to free VNIC resource 2021-06-09 00:27:45 +02:00
bnxt_hwrm.c net/bnxt: fix double allocation of ring groups 2021-09-02 02:39:45 +02:00
bnxt_hwrm.h net/bnxt: handle pause storm event 2021-07-14 20:29:05 +02:00
bnxt_irq.c net/bnxt: fix null dereference in interrupt handler 2021-07-20 23:33:25 +02:00
bnxt_irq.h net/bnxt: rename a member to avoid conflict 2021-03-12 07:13:49 +01:00
bnxt_nvm_defs.h net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
bnxt_reps.c net/bnxt: drop unused attribute 2021-04-24 21:23:09 +02:00
bnxt_reps.h net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
bnxt_ring.c net/bnxt: update ring group after ring stop start 2021-08-19 06:39:23 +02:00
bnxt_ring.h net/bnxt: fix ring and context memory allocation 2021-07-08 05:55:52 +02:00
bnxt_rxq.c net/bnxt: support runtime queue setup 2021-07-08 05:55:56 +02:00
bnxt_rxq.h net/bnxt: detect bad opaque in Rx completion 2021-06-08 19:17:25 +02:00
bnxt_rxr.c net/bnxt: fix VLAN indication in Rx mbuf 2021-09-02 02:34:03 +02:00
bnxt_rxr.h net/bnxt: fix mbuf VLAN in scalar Rx 2021-09-02 02:33:39 +02:00
bnxt_rxtx_vec_avx2.c net/bnxt: fix missing barriers in completion handling 2021-07-12 20:38:12 +02:00
bnxt_rxtx_vec_common.h net/bnxt: optimize Tx completion handling 2021-03-12 16:07:33 +01:00
bnxt_rxtx_vec_neon.c net/bnxt: fix missing barriers in completion handling 2021-07-12 20:38:12 +02:00
bnxt_rxtx_vec_sse.c net/bnxt: fix missing barriers in completion handling 2021-07-12 20:38:12 +02:00
bnxt_stats.c net/bnxt: clear cached statistics 2021-07-15 02:31:32 +02:00
bnxt_stats.h net/bnxt: drop unused attribute 2021-04-24 21:23:09 +02:00
bnxt_txq.c net/bnxt: support runtime queue setup 2021-07-08 05:55:56 +02:00
bnxt_txq.h net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
bnxt_txr.c net/bnxt: fix missing barriers in completion handling 2021-07-12 20:38:12 +02:00
bnxt_txr.h net/bnxt: add AVX2 RX/Tx 2021-06-07 23:36:13 +02:00
bnxt_util.c net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
bnxt_util.h net/bnxt: add action SRAM translation 2021-07-08 01:56:51 +02:00
bnxt_vnic.c net/bnxt: fix ring and context memory allocation 2021-07-08 05:55:52 +02:00
bnxt_vnic.h net/bnxt: use prefix on global function 2021-04-24 21:39:12 +02:00
bnxt.h net/bnxt: fix VLAN indication in Rx mbuf 2021-09-02 02:34:03 +02:00
hsi_struct_def_dpdk.h net/bnxt: update HSI structure 2021-07-14 20:29:05 +02:00
meson.build net/bnxt: fix aarch32 build 2021-07-09 19:59:46 +02:00
rte_pmd_bnxt.c net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
rte_pmd_bnxt.h net/bnxt: update copyright year 2021-01-29 18:16:10 +01:00
version.map version: 21.11-rc0 2021-08-17 08:37:52 +02:00