199a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause 299a2dd95SBruce Richardson * Copyright(c) 2015 RehiveTech. All rights reserved. 399a2dd95SBruce Richardson */ 499a2dd95SBruce Richardson 599a2dd95SBruce Richardson #ifndef _RTE_BYTEORDER_ARM_H_ 699a2dd95SBruce Richardson #define _RTE_BYTEORDER_ARM_H_ 799a2dd95SBruce Richardson 899a2dd95SBruce Richardson #ifndef RTE_FORCE_INTRINSICS 999a2dd95SBruce Richardson # error Platform must be built with RTE_FORCE_INTRINSICS 1099a2dd95SBruce Richardson #endif 1199a2dd95SBruce Richardson 1299a2dd95SBruce Richardson #include <stdint.h> 1399a2dd95SBruce Richardson #include <rte_common.h> 1499a2dd95SBruce Richardson #include "generic/rte_byteorder.h" 1599a2dd95SBruce Richardson 16*719834a6SMattias Rönnblom #ifdef __cplusplus 17*719834a6SMattias Rönnblom extern "C" { 18*719834a6SMattias Rönnblom #endif 19*719834a6SMattias Rönnblom 2099a2dd95SBruce Richardson /* ARM architecture is bi-endian (both big and little). */ 2199a2dd95SBruce Richardson #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN 2299a2dd95SBruce Richardson 2399a2dd95SBruce Richardson #define rte_cpu_to_le_16(x) (x) 2499a2dd95SBruce Richardson #define rte_cpu_to_le_32(x) (x) 2599a2dd95SBruce Richardson #define rte_cpu_to_le_64(x) (x) 2699a2dd95SBruce Richardson 2799a2dd95SBruce Richardson #define rte_cpu_to_be_16(x) rte_bswap16(x) 2899a2dd95SBruce Richardson #define rte_cpu_to_be_32(x) rte_bswap32(x) 2999a2dd95SBruce Richardson #define rte_cpu_to_be_64(x) rte_bswap64(x) 3099a2dd95SBruce Richardson 3199a2dd95SBruce Richardson #define rte_le_to_cpu_16(x) (x) 3299a2dd95SBruce Richardson #define rte_le_to_cpu_32(x) (x) 3399a2dd95SBruce Richardson #define rte_le_to_cpu_64(x) (x) 3499a2dd95SBruce Richardson 3599a2dd95SBruce Richardson #define rte_be_to_cpu_16(x) rte_bswap16(x) 3699a2dd95SBruce Richardson #define rte_be_to_cpu_32(x) rte_bswap32(x) 3799a2dd95SBruce Richardson #define rte_be_to_cpu_64(x) rte_bswap64(x) 3899a2dd95SBruce Richardson 3999a2dd95SBruce Richardson #else /* RTE_BIG_ENDIAN */ 4099a2dd95SBruce Richardson 4199a2dd95SBruce Richardson #define rte_cpu_to_le_16(x) rte_bswap16(x) 4299a2dd95SBruce Richardson #define rte_cpu_to_le_32(x) rte_bswap32(x) 4399a2dd95SBruce Richardson #define rte_cpu_to_le_64(x) rte_bswap64(x) 4499a2dd95SBruce Richardson 4599a2dd95SBruce Richardson #define rte_cpu_to_be_16(x) (x) 4699a2dd95SBruce Richardson #define rte_cpu_to_be_32(x) (x) 4799a2dd95SBruce Richardson #define rte_cpu_to_be_64(x) (x) 4899a2dd95SBruce Richardson 4999a2dd95SBruce Richardson #define rte_le_to_cpu_16(x) rte_bswap16(x) 5099a2dd95SBruce Richardson #define rte_le_to_cpu_32(x) rte_bswap32(x) 5199a2dd95SBruce Richardson #define rte_le_to_cpu_64(x) rte_bswap64(x) 5299a2dd95SBruce Richardson 5399a2dd95SBruce Richardson #define rte_be_to_cpu_16(x) (x) 5499a2dd95SBruce Richardson #define rte_be_to_cpu_32(x) (x) 5599a2dd95SBruce Richardson #define rte_be_to_cpu_64(x) (x) 5699a2dd95SBruce Richardson #endif 5799a2dd95SBruce Richardson 5899a2dd95SBruce Richardson #ifdef __cplusplus 5999a2dd95SBruce Richardson } 6099a2dd95SBruce Richardson #endif 6199a2dd95SBruce Richardson 6299a2dd95SBruce Richardson #endif /* _RTE_BYTEORDER_ARM_H_ */ 63