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 14 int 15 main( 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 } 57