1*99a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause 2*99a2dd95SBruce Richardson * Copyright(c) 2010-2014 Intel Corporation 3*99a2dd95SBruce Richardson */ 4*99a2dd95SBruce Richardson 5*99a2dd95SBruce Richardson #ifndef _RTE_BYTEORDER_X86_H_ 6*99a2dd95SBruce Richardson #error do not include this file directly, use <rte_byteorder.h> instead 7*99a2dd95SBruce Richardson #endif 8*99a2dd95SBruce Richardson 9*99a2dd95SBruce Richardson #ifndef _RTE_BYTEORDER_I686_H_ 10*99a2dd95SBruce Richardson #define _RTE_BYTEORDER_I686_H_ 11*99a2dd95SBruce Richardson 12*99a2dd95SBruce Richardson #include <stdint.h> 13*99a2dd95SBruce Richardson #include <rte_byteorder.h> 14*99a2dd95SBruce Richardson 15*99a2dd95SBruce Richardson /* 16*99a2dd95SBruce Richardson * An architecture-optimized byte swap for a 64-bit value. 17*99a2dd95SBruce Richardson * 18*99a2dd95SBruce Richardson * Do not use this function directly. The preferred function is rte_bswap64(). 19*99a2dd95SBruce Richardson */ 20*99a2dd95SBruce Richardson /* Compat./Leg. mode */ rte_arch_bswap64(uint64_t x)21*99a2dd95SBruce Richardsonstatic inline uint64_t rte_arch_bswap64(uint64_t x) 22*99a2dd95SBruce Richardson { 23*99a2dd95SBruce Richardson uint64_t ret = 0; 24*99a2dd95SBruce Richardson ret |= ((uint64_t)rte_arch_bswap32(x & 0xffffffffUL) << 32); 25*99a2dd95SBruce Richardson ret |= ((uint64_t)rte_arch_bswap32((x >> 32) & 0xffffffffUL)); 26*99a2dd95SBruce Richardson return ret; 27*99a2dd95SBruce Richardson } 28*99a2dd95SBruce Richardson 29*99a2dd95SBruce Richardson #endif /* _RTE_BYTEORDER_I686_H_ */ 30