161e12104SWon Kang /* 261e12104SWon Kang * Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved. 361e12104SWon Kang * 461e12104SWon Kang * This software is licensed under the terms of the GNU General Public 561e12104SWon Kang * License version 2, as published by the Free Software Foundation, and 661e12104SWon Kang * may be copied, distributed, and modified under those terms. 761e12104SWon Kang * 861e12104SWon Kang * This program is distributed in the hope that it will be useful, 961e12104SWon Kang * but WITHOUT ANY WARRANTY; without even the implied warranty of 1061e12104SWon Kang * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1161e12104SWon Kang * GNU General Public License for more details. 1261e12104SWon Kang */ 1361e12104SWon Kang 1461e12104SWon Kang #ifndef __GDM_ENDIAN_H__ 1561e12104SWon Kang #define __GDM_ENDIAN_H__ 1661e12104SWon Kang 1761e12104SWon Kang #include <linux/types.h> 1861e12104SWon Kang 19457c005aSEric S. Stone /* 20457c005aSEric S. Stone * For data in "device-endian" byte order (device endianness is model 21457c005aSEric S. Stone * dependent). Analogous to __leXX or __beXX. 22457c005aSEric S. Stone */ 23457c005aSEric S. Stone typedef __u32 __bitwise __dev32; 24457c005aSEric S. Stone typedef __u16 __bitwise __dev16; 25457c005aSEric S. Stone 2661e12104SWon Kang enum { 2761e12104SWon Kang ENDIANNESS_MIN = 0, 2861e12104SWon Kang ENDIANNESS_UNKNOWN, 2961e12104SWon Kang ENDIANNESS_LITTLE, 3061e12104SWon Kang ENDIANNESS_BIG, 3161e12104SWon Kang ENDIANNESS_MIDDLE, 3261e12104SWon Kang ENDIANNESS_MAX 3361e12104SWon Kang }; 3461e12104SWon Kang 3561e12104SWon Kang struct gdm_endian { 3661e12104SWon Kang u8 dev_ed; 3761e12104SWon Kang }; 3861e12104SWon Kang 399c02d0dbSWon Kang void gdm_set_endian(struct gdm_endian *ed, u8 dev_endian); 40457c005aSEric S. Stone __dev16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x); 41457c005aSEric S. Stone u16 gdm_dev16_to_cpu(struct gdm_endian *ed, __dev16 x); 42457c005aSEric S. Stone __dev32 gdm_cpu_to_dev32(struct gdm_endian *ed, u32 x); 43457c005aSEric S. Stone u32 gdm_dev32_to_cpu(struct gdm_endian *ed, __dev32 x); 4461e12104SWon Kang 4561e12104SWon Kang #endif /*__GDM_ENDIAN_H__*/ 46