18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * endian.h - Defines for endianness handling in NTFS Linux kernel driver. 48c2ecf20Sopenharmony_ci * Part of the Linux-NTFS project. 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Copyright (c) 2001-2004 Anton Altaparmakov 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#ifndef _LINUX_NTFS_ENDIAN_H 108c2ecf20Sopenharmony_ci#define _LINUX_NTFS_ENDIAN_H 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <asm/byteorder.h> 138c2ecf20Sopenharmony_ci#include "types.h" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci/* 168c2ecf20Sopenharmony_ci * Signed endianness conversion functions. 178c2ecf20Sopenharmony_ci */ 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cistatic inline s16 sle16_to_cpu(sle16 x) 208c2ecf20Sopenharmony_ci{ 218c2ecf20Sopenharmony_ci return le16_to_cpu((__force le16)x); 228c2ecf20Sopenharmony_ci} 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic inline s32 sle32_to_cpu(sle32 x) 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci return le32_to_cpu((__force le32)x); 278c2ecf20Sopenharmony_ci} 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistatic inline s64 sle64_to_cpu(sle64 x) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci return le64_to_cpu((__force le64)x); 328c2ecf20Sopenharmony_ci} 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_cistatic inline s16 sle16_to_cpup(sle16 *x) 358c2ecf20Sopenharmony_ci{ 368c2ecf20Sopenharmony_ci return le16_to_cpu(*(__force le16*)x); 378c2ecf20Sopenharmony_ci} 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_cistatic inline s32 sle32_to_cpup(sle32 *x) 408c2ecf20Sopenharmony_ci{ 418c2ecf20Sopenharmony_ci return le32_to_cpu(*(__force le32*)x); 428c2ecf20Sopenharmony_ci} 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_cistatic inline s64 sle64_to_cpup(sle64 *x) 458c2ecf20Sopenharmony_ci{ 468c2ecf20Sopenharmony_ci return le64_to_cpu(*(__force le64*)x); 478c2ecf20Sopenharmony_ci} 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_cistatic inline sle16 cpu_to_sle16(s16 x) 508c2ecf20Sopenharmony_ci{ 518c2ecf20Sopenharmony_ci return (__force sle16)cpu_to_le16(x); 528c2ecf20Sopenharmony_ci} 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_cistatic inline sle32 cpu_to_sle32(s32 x) 558c2ecf20Sopenharmony_ci{ 568c2ecf20Sopenharmony_ci return (__force sle32)cpu_to_le32(x); 578c2ecf20Sopenharmony_ci} 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_cistatic inline sle64 cpu_to_sle64(s64 x) 608c2ecf20Sopenharmony_ci{ 618c2ecf20Sopenharmony_ci return (__force sle64)cpu_to_le64(x); 628c2ecf20Sopenharmony_ci} 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_cistatic inline sle16 cpu_to_sle16p(s16 *x) 658c2ecf20Sopenharmony_ci{ 668c2ecf20Sopenharmony_ci return (__force sle16)cpu_to_le16(*x); 678c2ecf20Sopenharmony_ci} 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_cistatic inline sle32 cpu_to_sle32p(s32 *x) 708c2ecf20Sopenharmony_ci{ 718c2ecf20Sopenharmony_ci return (__force sle32)cpu_to_le32(*x); 728c2ecf20Sopenharmony_ci} 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_cistatic inline sle64 cpu_to_sle64p(s64 *x) 758c2ecf20Sopenharmony_ci{ 768c2ecf20Sopenharmony_ci return (__force sle64)cpu_to_le64(*x); 778c2ecf20Sopenharmony_ci} 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci#endif /* _LINUX_NTFS_ENDIAN_H */ 80