1c0b746e5SOllivier Robert /* 2c0b746e5SOllivier Robert * This works on: 3c0b746e5SOllivier Robert * Crays 4c0b746e5SOllivier Robert * Conven 5c0b746e5SOllivier Robert * sparc's 6c0b746e5SOllivier Robert * Dec mip machines 7c0b746e5SOllivier Robert * Dec alpha machines 8c0b746e5SOllivier Robert * RS6000 9c0b746e5SOllivier Robert * SGI's 10c0b746e5SOllivier Robert */ 11c0b746e5SOllivier Robert 12c0b746e5SOllivier Robert #include <stdio.h> 13c0b746e5SOllivier Robert 14c0b746e5SOllivier Robert int main(int argc,char * argv[])15c0b746e5SOllivier Robertmain( 16c0b746e5SOllivier Robert int argc, 17c0b746e5SOllivier Robert char *argv[] 18c0b746e5SOllivier Robert ) 19c0b746e5SOllivier Robert { 20c0b746e5SOllivier Robert int i; 21c0b746e5SOllivier Robert int big; 22c0b746e5SOllivier Robert union { 23c0b746e5SOllivier Robert unsigned long l; 24c0b746e5SOllivier Robert char c[sizeof(long)]; 25c0b746e5SOllivier Robert } u; 26c0b746e5SOllivier Robert 27c0b746e5SOllivier Robert #if defined(LONG8) 28c0b746e5SOllivier Robert u.l = (((long)0x08070605) << 32) | (long)0x04030201; 29c0b746e5SOllivier Robert #else 30c0b746e5SOllivier Robert u.l = 0x04030201; 31c0b746e5SOllivier Robert #endif 32c0b746e5SOllivier Robert if (sizeof(long) > 4) { 33c0b746e5SOllivier Robert if (u.c[0] == 0x08) big = 1; 34c0b746e5SOllivier Robert else big = 0; 35c0b746e5SOllivier Robert } else { 36c0b746e5SOllivier Robert if (u.c[0] == 0x04) big = 1; 37c0b746e5SOllivier Robert else big = 0; 38c0b746e5SOllivier Robert } 39c0b746e5SOllivier Robert for (i=0; i< sizeof(long); i++) { 40c0b746e5SOllivier Robert if (big == 1 && (u.c[i] == (sizeof(long) - i))) { 41c0b746e5SOllivier Robert continue; 42c0b746e5SOllivier Robert } else if (big == 0 && (u.c[i] == (i+1))) { 43c0b746e5SOllivier Robert continue; 44c0b746e5SOllivier Robert } else { 45c0b746e5SOllivier Robert big = -1; 46c0b746e5SOllivier Robert break; 47c0b746e5SOllivier Robert } 48c0b746e5SOllivier Robert } 49c0b746e5SOllivier Robert 50c0b746e5SOllivier Robert if (big == 1) { 51c0b746e5SOllivier Robert printf("XNTP_BIG_ENDIAN\n"); 52c0b746e5SOllivier Robert } else if (big == 0) { 53c0b746e5SOllivier Robert printf("XNTP_LITTLE_ENDIAN\n"); 54c0b746e5SOllivier Robert } 55c0b746e5SOllivier Robert exit(0); 56c0b746e5SOllivier Robert } 57