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

📄 byteorder.h

📁 GNU Mach 微内核源代码, 基于美国卡内基美隆大学的 Mach 研究项目
💻 H
字号:
#ifndef _I386_BYTEORDER_H#define _I386_BYTEORDER_H#undef ntohl#undef ntohs#undef htonl#undef htons#ifndef __LITTLE_ENDIAN#define __LITTLE_ENDIAN 1234#endif#ifndef __LITTLE_ENDIAN_BITFIELD#define __LITTLE_ENDIAN_BITFIELD#endif/* For avoiding bswap on i386 */#ifdef __KERNEL__#include <linux/config.h>#endifextern unsigned long int	ntohl(unsigned long int);extern unsigned short int	ntohs(unsigned short int);extern unsigned long int	htonl(unsigned long int);extern unsigned short int	htons(unsigned short int);extern __inline__ unsigned long int	__ntohl(unsigned long int);extern __inline__ unsigned short int	__ntohs(unsigned short int);extern __inline__ unsigned long int	__constant_ntohl(unsigned long int);extern __inline__ unsigned short int	__constant_ntohs(unsigned short int);extern __inline__ unsigned long int__ntohl(unsigned long int x){#if defined(__KERNEL__) && !defined(CONFIG_M386)	__asm__("bswap %0" : "=r" (x) : "0" (x));#else	__asm__("xchgb %b0,%h0\n\t"	/* swap lower bytes	*/		"rorl $16,%0\n\t"	/* swap words		*/		"xchgb %b0,%h0"		/* swap higher bytes	*/		:"=q" (x)		: "0" (x));#endif		return x;}#define __constant_ntohl(x) \	((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \			     (((unsigned long int)(x) & 0x0000ff00U) <<  8) | \			     (((unsigned long int)(x) & 0x00ff0000U) >>  8) | \			     (((unsigned long int)(x) & 0xff000000U) >> 24)))extern __inline__ unsigned short int__ntohs(unsigned short int x){	__asm__("xchgb %b0,%h0"		/* swap bytes		*/		: "=q" (x)		:  "0" (x));	return x;}#define __constant_ntohs(x) \	((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \			      (((unsigned short int)(x) & 0xff00) >> 8))) \#define __htonl(x) __ntohl(x)#define __htons(x) __ntohs(x)#define __constant_htonl(x) __constant_ntohl(x)#define __constant_htons(x) __constant_ntohs(x)#ifdef  __OPTIMIZE__#  define ntohl(x) \(__builtin_constant_p((long)(x)) ? \ __constant_ntohl((x)) : \ __ntohl((x)))#  define ntohs(x) \(__builtin_constant_p((short)(x)) ? \ __constant_ntohs((x)) : \ __ntohs((x)))#  define htonl(x) \(__builtin_constant_p((long)(x)) ? \ __constant_htonl((x)) : \ __htonl((x)))#  define htons(x) \(__builtin_constant_p((short)(x)) ? \ __constant_htons((x)) : \ __htons((x)))#endif#endif

⌨️ 快捷键说明

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