source: trunk/third/xntp/util/byteorder.c @ 16192

Revision 16192, 839 bytes checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r16191, which included commits to RCS files with non-trunk default branches.
Line 
1/*
2 * This works on:
3 *   Crays
4 *   Conven
5 *   sparc's
6 *   Dec mip machines
7 *   Dec alpha machines
8 *   RS6000
9 *   SGI's
10 */
11
12#include <stdio.h>
13
14int
15main(
16        int argc,
17        char *argv[]
18        )
19{
20        int i;
21        int big;
22        union {
23                unsigned long l;
24                char c[sizeof(long)];
25        } u;
26
27#if defined(LONG8)
28        u.l = (((long)0x08070605) << 32) | (long)0x04030201;
29#else
30        u.l = 0x04030201;
31#endif
32        if (sizeof(long) > 4) {
33                if (u.c[0] == 0x08) big = 1;
34                else                big = 0;
35        } else {
36                if (u.c[0] == 0x04) big = 1;
37                else                big = 0;
38        }
39        for (i=0; i< sizeof(long); i++) {
40                if (big == 1 && (u.c[i] == (sizeof(long) - i))) {
41                        continue;
42                } else if (big == 0 && (u.c[i] == (i+1))) {
43                        continue;
44                } else {
45                        big = -1;
46                        break;
47                }
48        }
49
50        if (big == 1) {
51                printf("XNTP_BIG_ENDIAN\n");
52        } else if (big == 0) {
53                printf("XNTP_LITTLE_ENDIAN\n");
54        }
55        exit(0);
56}
Note: See TracBrowser for help on using the repository browser.