endian.h
01: 
02: 
03: 
04: 
05: 
06: 
07: 
08: 
09: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: #ifndef _ENDIAN_H
20: #define _ENDIAN_H       1
21: 
22: #include <features.h>
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: #define __LITTLE_ENDIAN 1234
33: #define __BIG_ENDIAN    4321
34: #define __PDP_ENDIAN    3412
35: 
36: 
37: #include <bits/endian.h>
38: 
39: 
40: 
41: #ifndef __FLOAT_WORD_ORDER
42: # define __FLOAT_WORD_ORDER __BYTE_ORDER
43: #endif
44: 
45: #ifdef  __USE_BSD
46: # define LITTLE_ENDIAN  __LITTLE_ENDIAN
47: # define BIG_ENDIAN     __BIG_ENDIAN
48: # define PDP_ENDIAN     __PDP_ENDIAN
49: # define BYTE_ORDER     __BYTE_ORDER
50: #endif
51: 
52: #if __BYTE_ORDER == __LITTLE_ENDIAN
53: # define __LONG_LONG_PAIR(HI, LO) LO, HI
54: #elif __BYTE_ORDER == __BIG_ENDIAN
55: # define __LONG_LONG_PAIR(HI, LO) HI, LO
56: #endif
57: 
58: 
59: #ifdef __USE_BSD
60: 
61: # include <bits/byteswap.h>
62: 
63: # if __BYTE_ORDER == __LITTLE_ENDIAN
64: #  define htobe16(x) __bswap_16 (x)
65: #  define htole16(x) (x)
66: #  define be16toh(x) __bswap_16 (x)
67: #  define le16toh(x) (x)
68: 
69: #  define htobe32(x) __bswap_32 (x)
70: #  define htole32(x) (x)
71: #  define be32toh(x) __bswap_32 (x)
72: #  define le32toh(x) (x)
73: 
74: #  define htobe64(x) __bswap_64 (x)
75: #  define htole64(x) (x)
76: #  define be64toh(x) __bswap_64 (x)
77: #  define le64toh(x) (x)
78: # else
79: #  define htobe16(x) (x)
80: #  define htole16(x) __bswap_16 (x)
81: #  define be16toh(x) (x)
82: #  define le16toh(x) __bswap_16 (x)
83: 
84: #  define htobe32(x) (x)
85: #  define htole32(x) __bswap_32 (x)
86: #  define be32toh(x) (x)
87: #  define le32toh(x) __bswap_32 (x)
88: 
89: #  define htobe64(x) (x)
90: #  define htole64(x) __bswap_64 (x)
91: #  define be64toh(x) (x)
92: #  define le64toh(x) __bswap_64 (x)
93: # endif
94: #endif
95: 
96: #endif  
97: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved