1 /* Copyright Coraid, Inc. 2006. All Rights Reserved */ 2 #include <u.h> 3 #include <libc.h> 4 #include "cec.h" 5 6 static int fd = -1; 7 8 void 9 rawon(void) 10 { 11 if((fd = open("/dev/consctl", OWRITE)) == -1 || 12 write(fd, "rawon", 5) != 5) 13 fprint(2, "Can't make console raw\n"); 14 } 15 16 void 17 rawoff(void) 18 { 19 close(fd); 20 } 21 22 enum { 23 Perline = 16, 24 Perch = 3, 25 }; 26 27 char line[Perch*Perline+1]; 28 29 static void 30 format(uchar *buf, int n, int t) 31 { 32 int i, r; 33 34 for(i = 0; i < n; i++){ 35 r = (i + t) % Perline; 36 if(r == 0 && i + t > 0) 37 fprint(2, "%s\n", line); 38 sprint(line + r*Perch, "%.2x ", buf[i]); 39 } 40 } 41 42 void 43 dump(uchar *p, int n) 44 { 45 format(p, n, 0); 46 if(n % 16 > 0) 47 print("%s\n", line); 48 } 49