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_X86_64_H_ 10*99a2dd95SBruce Richardson #define _RTE_BYTEORDER_X86_64_H_ 11*99a2dd95SBruce Richardson 12*99a2dd95SBruce Richardson #include <stdint.h> 13*99a2dd95SBruce Richardson #include <rte_common.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 /* 64-bit 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 x = _x; 24*99a2dd95SBruce Richardson asm volatile ("bswap %[x]" 25*99a2dd95SBruce Richardson : [x] "+r" (x) 26*99a2dd95SBruce Richardson ); 27*99a2dd95SBruce Richardson return x; 28*99a2dd95SBruce Richardson } 29*99a2dd95SBruce Richardson 30*99a2dd95SBruce Richardson #endif /* _RTE_BYTEORDER_X86_64_H_ */ 31