#include "util.h" __inline int isprint(char e) { if (e < 0x30 || e > 0x80) return 0; } // hex_dumb display network packets in a good way void hex_dump(unsigned n, const unsigned char* buf) { int on_this_line = 0; while (n-- > 0) { kprintf("%02X ", *buf++); on_this_line += 1; if (on_this_line == 16 || n == 0) { int i; kputs(" "); for (i = on_this_line; i < 16; i++) kputs(" "); for (i = on_this_line; i > 0; i--) kputchar(isprint(buf[-i]) ? buf[-i] : '.'); kputs("\n"); on_this_line = 0; } } }