xref: /linux/arch/nios2/include/uapi/asm/swab.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
297da0d62SLey Foon Tan /*
397da0d62SLey Foon Tan  * Copyright (C) 2012 Tobias Klauser <tklauser@distanz.ch>
497da0d62SLey Foon Tan  * Copyright (C) 2011 Pyramid Technical Consultants, Inc.
597da0d62SLey Foon Tan  *
697da0d62SLey Foon Tan  * This file is subject to the terms and conditions of the GNU General
797da0d62SLey Foon Tan  * Public License. See the file COPYING in the main directory of this
897da0d62SLey Foon Tan  * archive for more details.
997da0d62SLey Foon Tan  */
1097da0d62SLey Foon Tan 
1197da0d62SLey Foon Tan #ifndef _ASM_NIOS2_SWAB_H
1297da0d62SLey Foon Tan #define _ASM_NIOS2_SWAB_H
1397da0d62SLey Foon Tan 
1497da0d62SLey Foon Tan #include <linux/types.h>
1597da0d62SLey Foon Tan #include <asm-generic/swab.h>
1697da0d62SLey Foon Tan 
1797da0d62SLey Foon Tan #ifdef CONFIG_NIOS2_CI_SWAB_SUPPORT
1897da0d62SLey Foon Tan #ifdef __GNUC__
1997da0d62SLey Foon Tan 
2097da0d62SLey Foon Tan #define __nios2_swab(x)		\
2197da0d62SLey Foon Tan 	__builtin_custom_ini(CONFIG_NIOS2_CI_SWAB_NO, (x))
2297da0d62SLey Foon Tan 
__arch_swab16(__u16 x)2397da0d62SLey Foon Tan static inline __attribute__((const)) __u16 __arch_swab16(__u16 x)
2497da0d62SLey Foon Tan {
2597da0d62SLey Foon Tan 	return (__u16) __nios2_swab(((__u32) x) << 16);
2697da0d62SLey Foon Tan }
2797da0d62SLey Foon Tan #define __arch_swab16 __arch_swab16
2897da0d62SLey Foon Tan 
__arch_swab32(__u32 x)2997da0d62SLey Foon Tan static inline __attribute__((const)) __u32 __arch_swab32(__u32 x)
3097da0d62SLey Foon Tan {
3197da0d62SLey Foon Tan 	return (__u32) __nios2_swab(x);
3297da0d62SLey Foon Tan }
3397da0d62SLey Foon Tan #define __arch_swab32 __arch_swab32
3497da0d62SLey Foon Tan 
3597da0d62SLey Foon Tan #endif /* __GNUC__ */
3697da0d62SLey Foon Tan #endif /* CONFIG_NIOS2_CI_SWAB_SUPPORT */
3797da0d62SLey Foon Tan 
3897da0d62SLey Foon Tan #endif /* _ASM_NIOS2_SWAB_H */
39