XINU
Functions
hexdump.c File Reference
#include <xinu.h>
Include dependency graph for hexdump.c:

Go to the source code of this file.

Functions

void hexadump (char *p, int32 len)
 
void hexdump (char *p, int32 len)
 

Function Documentation

◆ hexadump()

void hexadump ( char *  p,
int32  len 
)

Definition at line 55 of file hexdump.c.

References kprintf().

59 {
60  int32 i; /* counts bytes */
61 
62  for (i=0; i<6; i++) {
63  kprintf("%02x", 0xff & *p++);
64  }
65  kprintf(" ");
66 
67  for (i=0; i<6; i++) {
68  kprintf("%02x", 0xff & *p++);
69  }
70  kprintf(" ");
71 
72  for (i=0; i<2; i++) {
73  kprintf("%02x", 0xff & *p++);
74  }
75  kprintf("\t\tEnd Ethernet header\n");
76 
77 
78  for (i=0; i<2; i++) {
79  kprintf("%02x", 0xff & *p++);
80  }
81  kprintf(" ");
82 
83  for (i=0; i<2; i++) {
84  kprintf("%02x", 0xff & *p++);
85  }
86  kprintf(" ");
87  kprintf("%02x ", 0xff & *p++);
88  kprintf("%02x ", 0xff & *p++);
89 
90  for (i=0; i<2; i++) {
91  kprintf("%02x", 0xff & *p++);
92  }
93  kprintf(" ");
94 
95  kprintf("\tHTYP PTYP HLEN PLEN OP\n");
96 
97 
98 
99  for (i=0; i<6; i++) {
100  kprintf("%02x", 0xff & *p++);
101  }
102  kprintf(" ");
103 
104  for (i=0; i<2; i++) {
105  kprintf("%02x", 0xff & *p++);
106  }
107  kprintf(" ");
108 
109  for (i=0; i<6; i++) {
110  kprintf("%02x", 0xff & *p++);
111  }
112  kprintf(" ");
113 
114  for (i=0; i<2; i++) {
115  kprintf("%02x", 0xff & *p++);
116  }
117  kprintf("\tSHA SPA THA TPA\n");
118  return;
119 }
syscall kprintf(char *fmt,...)
ポーリングI/Oを使用して、フォーマットされた文字列をコンソールに出力する。
Definition: kprintf.c:98
int int32
符号あり32ビット整数(int)
Definition: kernel.h:11
Here is the call graph for this function:

◆ hexdump()

void hexdump ( char *  p,
int32  len 
)

Definition at line 9 of file hexdump.c.

References kprintf().

13 {
14  int32 i; /* counts bytes */
15  int32 word; /* counts 32 bits words */
16 
17  for (i=0; i<6; i++) {
18  kprintf("%02x", 0xff & *p++);
19  }
20  kprintf(" ");
21 
22  for (i=0; i<6; i++) {
23  kprintf("%02x", 0xff & *p++);
24  }
25  kprintf(" ");
26 
27  for (i=0; i<2; i++) {
28  kprintf("%02x", 0xff & *p++);
29  }
30  kprintf("\t\tEnd Ethernet header\n");
31 
32  for (word=0,i=0; i<len; i++) {
33  if ((i % 4) == 0) {
34  word++;
35  if (word == 6) {
36  kprintf("\tHV TOS LENGTH ID FRAG TTL PRO CKSUM IP_SRC IP_DST\n");
37  } else if (word==8) {
38  kprintf("\t\t\t\tSRC_PRT DEST-PORT LENGTH CKSUM\n");
39  word = 17;
40  } else if ((word % 16) ==0) {
41  kprintf("\n");
42  } else if (i != 0) {
43  kprintf(" ");
44  }
45  }
46  kprintf("%02x", 0xff & *p++);
47  }
48  kprintf("\n");
49  return;
50 }
syscall kprintf(char *fmt,...)
ポーリングI/Oを使用して、フォーマットされた文字列をコンソールに出力する。
Definition: kprintf.c:98
int int32
符号あり32ビット整数(int)
Definition: kernel.h:11
Here is the call graph for this function: