app/testpmd: fix endianness detection
Use endianness detection factorized in EAL.
The comment about arpa/inet.h is not valid anymore since
commit d07180f211
("net: fix conflict with libc").
The macro _htons could also be moved in rte_byteorder.h
by providing some constant byte swapping.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
This commit is contained in:
parent
72c605807a
commit
44eb945696
@ -628,7 +628,7 @@ ring_dma_zone_lookup(const char *ring_name, uint8_t port_id, uint16_t q_id)
|
||||
union igb_ring_dword {
|
||||
uint64_t dword;
|
||||
struct {
|
||||
#ifdef RTE_ARCH_BIG_ENDIAN
|
||||
#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN
|
||||
uint32_t lo;
|
||||
uint32_t hi;
|
||||
#else
|
||||
|
@ -79,9 +79,8 @@
|
||||
#define IP_HDRLEN 0x05 /* default IP header length == five 32-bits words. */
|
||||
#define IP_VHL_DEF (IP_VERSION | IP_HDRLEN)
|
||||
|
||||
/* we cannot use htons() from arpa/inet.h due to name conflicts, and we
|
||||
* cannot use rte_cpu_to_be_16() on a constant in a switch/case */
|
||||
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||
/* We cannot use rte_cpu_to_be_16() on a constant in a switch/case */
|
||||
#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
|
||||
#define _htons(x) ((uint16_t)((((x) & 0x00ffU) << 8) | (((x) & 0xff00U) >> 8)))
|
||||
#else
|
||||
#define _htons(x) (x)
|
||||
|
@ -567,7 +567,7 @@ int tx_queue_id_is_invalid(queueid_t txq_id);
|
||||
#define RTE_BE_TO_CPU_16(be_16_v) rte_be_to_cpu_16((be_16_v))
|
||||
#define RTE_CPU_TO_BE_16(cpu_16_v) rte_cpu_to_be_16((cpu_16_v))
|
||||
#else
|
||||
#ifdef __big_endian__
|
||||
#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN
|
||||
#define RTE_BE_TO_CPU_16(be_16_v) (be_16_v)
|
||||
#define RTE_CPU_TO_BE_16(cpu_16_v) (cpu_16_v)
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user