diff options
author | Jacob Moody <moody@posixcafe.org> | 2022-08-15 02:59:49 +0000 |
---|---|---|
committer | Jacob Moody <moody@posixcafe.org> | 2022-08-15 02:59:49 +0000 |
commit | 8906ad7c15744271d0f6a41ae2f590a8bc31bf21 (patch) | |
tree | ed459c7f4f912774921642a911949f75058f5d9e /sys/src/cmd/rio/xfid.c | |
parent | 4df168d98fb7b73e50d702b70ceffcaddfe8203c (diff) |
rio: add /dev/kbdtap
Diffstat (limited to 'sys/src/cmd/rio/xfid.c')
-rw-r--r-- | sys/src/cmd/rio/xfid.c | 19 |
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) |