home *** CD-ROM | disk | FTP | other *** search
- #ifndef _MACHINE_ENDIAN_H_
- #define _MACHINE_ENDIAN_H_
-
- #ifndef _SYS_TYPES_H_
- #include <sys/types.h>
- #endif
-
- /*
- * 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 */
-
- #define BYTE_ORDER BIG_ENDIAN
-
- unsigned long htonl(unsigned long);
- unsigned short htons(unsigned short);
- unsigned long ntohl(unsigned long);
- unsigned short ntohs(unsigned short);
-
- /*
- * 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) (x)
- #define NTOHS(x) (x)
- #define HTONL(x) (x)
- #define HTONS(x) (x)
-
- #else
-
- #define NTOHL(x) (x) = ntohl((u_long)x)
- #define NTOHS(x) (x) = ntohs((u_short)x)
- #define HTONL(x) (x) = htonl((u_long)x)
- #define HTONS(x) (x) = htons((u_short)x)
- #endif
- #endif /* !_ENDIAN_H_ */
-