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