git: 9front

Download patch

ref: db1619f6fe2cc1c97f2a0397f97446c922940d5d
parent: 133036cf2397e1e0db66538d3a83cd3660b34b96
author: cinap_lenrek <cinap_lenrek@centraldogma>
date: Mon May 9 06:04:04 EDT 2011

devkbd: fix missing devdrirread

--- a/sys/src/9/pc/devkbd.c
+++ b/sys/src/9/pc/devkbd.c
@@ -355,21 +355,24 @@
 }
 
 static Block*
-kbdbread(Chan *c, long n, ulong)
+kbdbread(Chan *c, long n, ulong off)
 {
-	if(c->qid.path != Qscancode)
-		error(Egreg);
-
-	return qbread(kbd.q, n);
+	if(c->qid.path == Qscancode)
+		return qbread(kbd.q, n);
+	else
+		return devbread(c, n, off);
 }
 
 static long
 kbdread(Chan *c, void *a, long n, vlong)
 {
-	if(c->qid.path != Qscancode)
-		error(Egreg);
+	if(c->qid.path == Qscancode)
+		return qread(kbd.q, a, n);
+	if(c->qid.path == Qdir)
+		return devdirread(c, a, n, kbdtab, nelem(kbdtab), devgen);
 
-	return qread(kbd.q, a, n);
+	error(Egreg);
+	return 0;
 }
 
 static long
--