📄 endian.h
字号:
/**************************************************************************** * Copyright (C) 2001-2006 MITSUBISHI ELECTRIC CORPORATION and * RENESAS SOLUTIONS CORPORATION * All rights reserved. * **************************************************************************** * Copyright (C) 1995 Wolfgang Solfrank. * Copyright (C) 1995 TooLs GmbH. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by TooLs GmbH. * 4. The name of TooLs GmbH may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#ifndef _ENDIAN_H_#define _ENDIAN_H_#ifndef _POSIX_SOURCE#define _QUAD_HIGHWORD 0#define _QUAD_LOWWORD 1/* * Definitions for byte order, according to byte significance from low * address to high. */#define LITTLE_ENDIAN 1234 /* LSB first: i386, vax */#define BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */#define PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */#if defined(CPU_M32R) || defined(CPU_SH2)#define BYTE_ORDER BIG_ENDIAN#elif defined(CPU_SH3)#define BYTE_ORDER LITTLE_ENDIAN#endif#ifndef EMB_SYS#include <sys/cdefs.h>typedef u_int32_t in_addr_t;typedef u_int16_t in_port_t;__BEGIN_DECLSin_addr_t htonl __P((in_addr_t));in_port_t htons __P((in_port_t));in_addr_t ntohl __P((in_addr_t));in_port_t ntohs __P((in_port_t));u_int16_t bswap16 __P((u_int16_t));u_int32_t bswap32 __P((u_int32_t));u_int64_t bswap64 __P((u_int64_t));__END_DECLS#endif /* !EMB_SYS *//* * Macros for network/external number representation conversion. */#if BYTE_ORDER == BIG_ENDIAN && !defined(lint)#define ntohl(x) (x)#define ntohs(x) (x)#define htonl(x) (x)#define htons(x) (x)#define NTOHL(x) (void) (x)#define NTOHS(x) (void) (x)#define HTONL(x) (void) (x)#define HTONS(x) (void) (x)#else#define NTOHL(x) (x) = ntohl((unsigned long)x)#define NTOHS(x) (x) = ntohs((unsigned short)x)#define HTONL(x) (x) = htonl((unsigned long)x)#define HTONS(x) (x) = htons((unsigned short)x)extern unsigned long htonl(unsigned long);extern unsigned short htons(unsigned short);extern unsigned long ntohl(unsigned long);extern unsigned short ntohs(unsigned short);#endif#endif /* !_POSIX_SOURCE */#endif /* _ENDIAN_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -