Annotation of embedaddon/ntp/util/byteorder.c, revision 1.1
1.1 ! misho 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: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>