162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * endian.h - Defines for endianness handling in NTFS Linux kernel driver.
462306a36Sopenharmony_ci *	      Part of the Linux-NTFS project.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (c) 2001-2004 Anton Altaparmakov
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifndef _LINUX_NTFS_ENDIAN_H
1062306a36Sopenharmony_ci#define _LINUX_NTFS_ENDIAN_H
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <asm/byteorder.h>
1362306a36Sopenharmony_ci#include "types.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci/*
1662306a36Sopenharmony_ci * Signed endianness conversion functions.
1762306a36Sopenharmony_ci */
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_cistatic inline s16 sle16_to_cpu(sle16 x)
2062306a36Sopenharmony_ci{
2162306a36Sopenharmony_ci	return le16_to_cpu((__force le16)x);
2262306a36Sopenharmony_ci}
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cistatic inline s32 sle32_to_cpu(sle32 x)
2562306a36Sopenharmony_ci{
2662306a36Sopenharmony_ci	return le32_to_cpu((__force le32)x);
2762306a36Sopenharmony_ci}
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistatic inline s64 sle64_to_cpu(sle64 x)
3062306a36Sopenharmony_ci{
3162306a36Sopenharmony_ci	return le64_to_cpu((__force le64)x);
3262306a36Sopenharmony_ci}
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cistatic inline s16 sle16_to_cpup(sle16 *x)
3562306a36Sopenharmony_ci{
3662306a36Sopenharmony_ci	return le16_to_cpu(*(__force le16*)x);
3762306a36Sopenharmony_ci}
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cistatic inline s32 sle32_to_cpup(sle32 *x)
4062306a36Sopenharmony_ci{
4162306a36Sopenharmony_ci	return le32_to_cpu(*(__force le32*)x);
4262306a36Sopenharmony_ci}
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cistatic inline s64 sle64_to_cpup(sle64 *x)
4562306a36Sopenharmony_ci{
4662306a36Sopenharmony_ci	return le64_to_cpu(*(__force le64*)x);
4762306a36Sopenharmony_ci}
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_cistatic inline sle16 cpu_to_sle16(s16 x)
5062306a36Sopenharmony_ci{
5162306a36Sopenharmony_ci	return (__force sle16)cpu_to_le16(x);
5262306a36Sopenharmony_ci}
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_cistatic inline sle32 cpu_to_sle32(s32 x)
5562306a36Sopenharmony_ci{
5662306a36Sopenharmony_ci	return (__force sle32)cpu_to_le32(x);
5762306a36Sopenharmony_ci}
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_cistatic inline sle64 cpu_to_sle64(s64 x)
6062306a36Sopenharmony_ci{
6162306a36Sopenharmony_ci	return (__force sle64)cpu_to_le64(x);
6262306a36Sopenharmony_ci}
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_cistatic inline sle16 cpu_to_sle16p(s16 *x)
6562306a36Sopenharmony_ci{
6662306a36Sopenharmony_ci	return (__force sle16)cpu_to_le16(*x);
6762306a36Sopenharmony_ci}
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_cistatic inline sle32 cpu_to_sle32p(s32 *x)
7062306a36Sopenharmony_ci{
7162306a36Sopenharmony_ci	return (__force sle32)cpu_to_le32(*x);
7262306a36Sopenharmony_ci}
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_cistatic inline sle64 cpu_to_sle64p(s64 *x)
7562306a36Sopenharmony_ci{
7662306a36Sopenharmony_ci	return (__force sle64)cpu_to_le64(*x);
7762306a36Sopenharmony_ci}
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci#endif /* _LINUX_NTFS_ENDIAN_H */
80