summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rio/xfid.c
diff options
context:
space:
mode:
authorJacob Moody <moody@posixcafe.org>2022-08-15 02:59:49 +0000
committerJacob Moody <moody@posixcafe.org>2022-08-15 02:59:49 +0000
commit8906ad7c15744271d0f6a41ae2f590a8bc31bf21 (patch)
treeed459c7f4f912774921642a911949f75058f5d9e /sys/src/cmd/rio/xfid.c
parent4df168d98fb7b73e50d702b70ceffcaddfe8203c (diff)
rio: add /dev/kbdtap
Diffstat (limited to 'sys/src/cmd/rio/xfid.c')
-rw-r--r--sys/src/cmd/rio/xfid.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/src/cmd/rio/xfid.c b/sys/src/cmd/rio/xfid.c
index 27054f8ef..8db600089 100644
--- a/sys/src/cmd/rio/xfid.c
+++ b/sys/src/cmd/rio/xfid.c
@@ -376,6 +376,7 @@ xfidwrite(Xfid *x)
Window *w;
Rune *r;
Conswritemesg cwm;
+ Tapmesg fmsg;
Stringpair pair;
enum { CWdata, CWgone, CWflush, NCW };
Alt alts[NCW+1];
@@ -568,6 +569,16 @@ xfidwrite(Xfid *x)
}
break;
+ case Qtap:
+ if(cnt < 2){
+ filsysrespond(x->fs, x, &fc, "malformed key");
+ return;
+ }
+ fmsg.type = x->data[0];
+ fmsg.s = strdup(x->data+1);
+ send(fromtap, &fmsg);
+ break;
+
default:
fprint(2, "unknown qid %d in write\n", qid);
filsysrespond(x->fs, x, &fc, "unknown qid in write");
@@ -682,6 +693,14 @@ xfidread(Xfid *x)
free(t);
break;
+ case Qtap:
+ recv(totap, &t);
+ fc.data = t;
+ fc.count = strlen(t)+1;
+ filsysrespond(x->fs, x, &fc, nil);
+ free(t);
+ break;
+
case Qlabel:
n = strlen(w->label);
if(off > n)