xref: /plan9/sys/src/cmd/cec/utils.c (revision 96cbc34f1b36a29efdcfd47b10e70703a690febc)
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