⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swab.h

📁 自己做的交叉编译工具!gcc-3.4.5,glibc-2.3.6在ubuntu8.04上做的面向kernel-2.6.28的交叉编译工具
💻 H
字号:
#ifndef _LINUX_BYTEORDER_SWAB_H#define _LINUX_BYTEORDER_SWAB_H/* * linux/byteorder/swab.h * Byte-swapping, independently from CPU endianness *	swabXX[ps]?(foo) * * Francois-Rene Rideau <fare@tunes.org> 19971205 *    separated swab functions from cpu_to_XX, *    to clean up support for bizarre-endian architectures. * * See asm-i386/byteorder.h and suches for examples of how to provide * architecture-dependent optimized versions * *//* for userspace, just use glibc macros */#include <byteswap.h>/* __bswap_constant_{16,32} are missing in generic <bits/byteswap.h> in glibc, * thus available only on x86 and few other archs */#ifndef __bswap_constant_16#define __bswap_constant_16(x) \     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))#endif#ifndef __bswap_constant_32#define __bswap_constant_32(x) \     ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) |		      \      (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))#endif#if (!defined(__bswap_constant_64)) && defined __GNUC__ && __GNUC__ >= 2/* Swap bytes in 64 bit value.  */#define __bswap_constant_64(x) \     ((((x) & 0xff00000000000000ull) >> 56)				      \      | (((x) & 0x00ff000000000000ull) >> 40)				      \      | (((x) & 0x0000ff0000000000ull) >> 24)				      \      | (((x) & 0x000000ff00000000ull) >> 8)				      \      | (((x) & 0x00000000ff000000ull) << 8)				      \      | (((x) & 0x0000000000ff0000ull) << 24)				      \      | (((x) & 0x000000000000ff00ull) << 40)				      \      | (((x) & 0x00000000000000ffull) << 56))#endif#define ___constant_swab16(x) __bswap_constant_16(x)#define ___constant_swab32(x) __bswap_constant_32(x)#define ___constant_swab64(x) __bswap_constant_64(x)#define __swab16(x) bswap_16(x)#define __swab32(x) bswap_32(x)#define __swab64(x) bswap_64(x)#define __swab16p(x) __swab16(*(x))#define __swab32p(x) __swab32(*(x))#define __swab64p(x) __swab64(*(x))#define __swab16s(x) do { *(x) = __swab16p((x)); } while (0)#define __swab32s(x) do { *(x) = __swab32p((x)); } while (0)#define __swab64s(x) do { *(x) = __swab64p((x)); } while (0)#endif /* _LINUX_BYTEORDER_SWAB_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -