a3d1111a77
Use kernel headers for __le* types to avoid potential conflicts resulting in redefinition errors for some Linux build environments. Add check for FreeBSD execution environments. Without this fix, aarch64 builds can fail with error below: In file included from ../drivers/net/bnx2x/bnx2x.h:22, from ../drivers/net/bnx2x/bnx2x_ethdev.c:8: ../drivers/net/bnx2x/bnx2x_osal.h:27:17: error: conflicting types for ‘uint64_t’ #define __le64 uint64_t ^~~~~~~~ In file included from /usr/include/stdint.h:37, from /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h:9, from ../lib/librte_eal/common/include/arch/arm/rte_byteorder.h:16, from ../drivers/net/bnx2x/bnx2x.h:17, from ../drivers/net/bnx2x/bnx2x_ethdev.c:8: /usr/include/aarch64-linux-gnu/bits/stdint-uintn.h:27:20: note: previous declaration of ‘uint64_t’ was here typedef __uint64_t uint64_t; ^~~~~~~~ There is also one minor change mixed in this commit: Some use of __FreeBSD__ are replaced by RTE_EXEC_ENV_FREEBSD. Fixes: 38dff79ba736 ("net/bnx2x: update HSI") Signed-off-by: Rasesh Mody <rmody@marvell.com> Tested-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Tested-by: Gavin Hu <gavin.hu@arm.com>
36 lines
664 B
C
36 lines
664 B
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright (c) 2019 Cavium Inc.
|
|
*
|
|
* All rights reserved.
|
|
* www.cavium.com
|
|
*/
|
|
|
|
#ifndef BNX2X_OSAL_H
|
|
#define BNX2X_OSAL_H
|
|
|
|
#ifdef RTE_EXEC_ENV_FREEBSD
|
|
#include <sys/stat.h>
|
|
#else
|
|
#include <linux/types.h>
|
|
#endif
|
|
|
|
#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
|
|
#ifndef __LITTLE_ENDIAN
|
|
#define __LITTLE_ENDIAN RTE_LITTLE_ENDIAN
|
|
#endif
|
|
#undef __BIG_ENDIAN
|
|
#elif RTE_BYTE_ORDER == RTE_BIG_ENDIAN
|
|
#ifndef __BIG_ENDIAN
|
|
#define __BIG_ENDIAN RTE_BIG_ENDIAN
|
|
#endif
|
|
#undef __LITTLE_ENDIAN
|
|
#endif
|
|
|
|
#ifdef RTE_EXEC_ENV_FREEBSD
|
|
#define __le16 uint16_t
|
|
#define __le32 uint32_t
|
|
#define __le64 uint64_t
|
|
#endif
|
|
|
|
#endif /* BNX2X_OSAL_H */
|