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>