NetBurner 3.5.0
PDF Version
 
endian.h
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
5#ifndef __NB_ENDIAN_H
6#define __NB_ENDIAN_H
7
8#include <cpu.h>
9
10#ifdef NB_BIG_ENDIAN
11#ifdef NB_LITTLE_ENDIAN
12#error Both NB_BIG_ENDIAN and NB_LITTLE_ENDIAN defined.
13#endif
14#endif
15
16#ifdef NB_BIG_ENDIAN
17#define HTOBES(x) (x)
18#define HTOBEL(x) (x)
19
20#define HTOLES(x) ((((x)&0xff00) >> 8) | (((x)&0xff) << 8))
21
22#define HTOLEL(x) ((((x) >> 24) & 0xff) | (((x)&0xff00) << 8) | (((x) >> 8) & 0xff00) | (((x)&0xff) << 24))
23#endif /* ----- #ifdef NB_BIG_ENDIAN ----- */
24
25#ifdef NB_LITTLE_ENDIAN
26#define HTOBES(x) ((((x)&0xff00) >> 8) | (((x)&0xff) << 8))
27
28#define HTOBEL(x) ((((x) >> 24) & 0xff) | (((x)&0xff00) << 8) | (((x) >> 8) & 0xff00) | (((x)&0xff) << 24))
29
30#define HTOLES(x) (x)
31#define HTOLEL(x) (x)
32#endif /* ----- #ifdef NB_LITTLE_ENDIAN ----- */
33
34#endif /* ----- #ifndef __NB_ENDIAN_H ----- */