Annotation of embedaddon/hping2/byteorder.c, revision 1.1.1.1

1.1       misho       1: #if 0
                      2: #
                      3: # Compile with:
                      4: #      $sh byteorder.c
                      5: #
                      6: cc byteorder.c -o byteorder || exit 1
                      7: echo successfully compiled
                      8: exit
                      9: #endif /* 0 */
                     10: 
                     11: /* 
                     12:  * $smu-mark$ 
                     13:  * $name: byteorder.c$ 
                     14:  * $author: Salvatore Sanfilippo <antirez@invece.org>$ 
                     15:  * $copyright: Copyright (C) 1999 by Salvatore Sanfilippo$ 
                     16:  * $license: This software is under GPL version 2 of license$ 
                     17:  * $date: Fri Nov  5 11:55:47 MET 1999$ 
                     18:  * $rev: 9$ 
                     19:  */ 
                     20: 
                     21: /*
                     22:  * 0.1 first version
                     23:  * 0.2 add Strchr, so it's possibile remove string.h
                     24:  * 0.3 more portable thx to Pancrazio De Mauro 'TrantIT'!!!
                     25:  * 0.4 better debug output
                     26:  */
                     27: 
                     28: #include <stdio.h>
                     29: 
                     30: char *Strchr(char *s, char c)
                     31: {
                     32:        while(*s)
                     33:                if (*s++ == c)
                     34:                        return s;
                     35: 
                     36:        return (char*) 0;
                     37: }
                     38: 
                     39: int main(int argc, char **argv)
                     40: {
                     41:        unsigned int test = 1;
                     42:        unsigned char *x;
                     43:        int macro = 0, debug = 0, help = 0, j;
                     44: 
                     45:        for (j = 1; j < argc; j++) {
                     46:                if (Strchr(argv[j], 'm')) macro = 1;
                     47:                if (Strchr(argv[j], 'd')) debug = 1;
                     48:                if (Strchr(argv[j], 'h')) help = 1;
                     49:        }
                     50: 
                     51:        if (help) {
                     52:                printf( "-m     macro output\n"
                     53:                        "-d     debug\n"
                     54:                        "-h     help\n");
                     55:                return 0;
                     56:        }
                     57:                
                     58:        x = (unsigned char*) &test;
                     59: 
                     60:        if (*x == 0x00) {
                     61:                if (macro)
                     62:                        printf("__BIG_ENDIAN_BITFIELD\n");
                     63:                else
                     64:                        printf("big endian\n");
                     65:        }
                     66:        else if (*x == 0x01) {
                     67:                if (macro)
                     68:                        printf("__LITTLE_ENDIAN_BITFIELD\n");
                     69:                else
                     70:                        printf("little endian\n");
                     71:        } else {
                     72:                printf("\nWARNING!!! byteorder exception\n\n");
                     73:                debug = 1;
                     74:        }
                     75: 
                     76:        if (debug) {
                     77:                printf("sizeof(unsigned int) = %d\n", sizeof(unsigned int));
                     78:                printf("unsigned int test = 1;\n");
                     79:                printf("in memory as: ");
                     80:                for (j = 0; j < sizeof(unsigned int); j++)
                     81:                        printf("%02x ", x[j]);
                     82:                printf("\n");
                     83:        }
                     84:        return 0;
                     85: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>