Rolf Meyer
/
ethsnif
A simple Ethernet sniffer. A demonstration how to use the Ethernet interface.
hexview.h@0:29e2df9de9f1, 2009-09-04 (annotated)
- Committer:
- rolf
- Date:
- Fri Sep 04 12:24:03 2009 +0000
- Revision:
- 0:29e2df9de9f1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rolf | 0:29e2df9de9f1 | 1 | /* Function: hexview |
rolf | 0:29e2df9de9f1 | 2 | * Prints an array of char to stdout in hex. |
rolf | 0:29e2df9de9f1 | 3 | * The data is grouped in two 8 byte groups per line. |
rolf | 0:29e2df9de9f1 | 4 | * Each byte is displayed as 2 hex digits and every |
rolf | 0:29e2df9de9f1 | 5 | * line starts with the address of the first byte. |
rolf | 0:29e2df9de9f1 | 6 | * |
rolf | 0:29e2df9de9f1 | 7 | * There is no text view of a line. |
rolf | 0:29e2df9de9f1 | 8 | * |
rolf | 0:29e2df9de9f1 | 9 | * Variables: |
rolf | 0:29e2df9de9f1 | 10 | * buffer - The array to display. |
rolf | 0:29e2df9de9f1 | 11 | * size - The length of buffer. |
rolf | 0:29e2df9de9f1 | 12 | */ |
rolf | 0:29e2df9de9f1 | 13 | inline void hexview(char *buffer, unsigned int size) { |
rolf | 0:29e2df9de9f1 | 14 | for(int i = 0; i < size; ++i) { |
rolf | 0:29e2df9de9f1 | 15 | if((i%16)!=0) { |
rolf | 0:29e2df9de9f1 | 16 | printf(" "); |
rolf | 0:29e2df9de9f1 | 17 | } else { |
rolf | 0:29e2df9de9f1 | 18 | printf("%04X: ", (i)); |
rolf | 0:29e2df9de9f1 | 19 | } |
rolf | 0:29e2df9de9f1 | 20 | printf("%02hhx", buffer[i]); |
rolf | 0:29e2df9de9f1 | 21 | if((i%16) == 7) { |
rolf | 0:29e2df9de9f1 | 22 | printf(" "); |
rolf | 0:29e2df9de9f1 | 23 | } |
rolf | 0:29e2df9de9f1 | 24 | if((i%16) == 15) { |
rolf | 0:29e2df9de9f1 | 25 | printf("\n"); |
rolf | 0:29e2df9de9f1 | 26 | } |
rolf | 0:29e2df9de9f1 | 27 | } |
rolf | 0:29e2df9de9f1 | 28 | printf("\n\n\n"); |
rolf | 0:29e2df9de9f1 | 29 | } |