162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
262306a36Sopenharmony_ci#ifndef _ASM_IA64_SWAB_H
362306a36Sopenharmony_ci#define _ASM_IA64_SWAB_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci/*
662306a36Sopenharmony_ci * Modified 1998, 1999
762306a36Sopenharmony_ci *	David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co.
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/types.h>
1162306a36Sopenharmony_ci#include <asm/intrinsics.h>
1262306a36Sopenharmony_ci#include <linux/compiler.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cistatic __inline__ __attribute_const__ __u64 __arch_swab64(__u64 x)
1562306a36Sopenharmony_ci{
1662306a36Sopenharmony_ci	__u64 result;
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	result = ia64_mux1(x, ia64_mux1_rev);
1962306a36Sopenharmony_ci	return result;
2062306a36Sopenharmony_ci}
2162306a36Sopenharmony_ci#define __arch_swab64 __arch_swab64
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistatic __inline__ __attribute_const__ __u32 __arch_swab32(__u32 x)
2462306a36Sopenharmony_ci{
2562306a36Sopenharmony_ci	return __arch_swab64(x) >> 32;
2662306a36Sopenharmony_ci}
2762306a36Sopenharmony_ci#define __arch_swab32 __arch_swab32
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistatic __inline__ __attribute_const__ __u16 __arch_swab16(__u16 x)
3062306a36Sopenharmony_ci{
3162306a36Sopenharmony_ci	return __arch_swab64(x) >> 48;
3262306a36Sopenharmony_ci}
3362306a36Sopenharmony_ci#define __arch_swab16 __arch_swab16
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#endif /* _ASM_IA64_SWAB_H */
36