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/fsys.c | |
parent | 4df168d98fb7b73e50d702b70ceffcaddfe8203c (diff) |
rio: add /dev/kbdtap
Diffstat (limited to 'sys/src/cmd/rio/fsys.c')
-rw-r--r-- | sys/src/cmd/rio/fsys.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sys/src/cmd/rio/fsys.c b/sys/src/cmd/rio/fsys.c index be81a1d57..49c9c7d2f 100644 --- a/sys/src/cmd/rio/fsys.c +++ b/sys/src/cmd/rio/fsys.c @@ -37,6 +37,7 @@ Dirtab dirtab[]= { "wctl", QTFILE, Qwctl, 0600 }, { "window", QTFILE, Qwindow, 0400 }, { "wsys", QTDIR, Qwsys, 0500|DMDIR }, + { "kbdtap", QTFILE, Qtap, 0660 }, { nil, } }; @@ -115,6 +116,16 @@ cexecpipe(int *p0, int *p1) return 0; } +void +toggletap(char mode) +{ + Tapmesg m; + + m.type = mode; + m.s = nil; + send(fromtap, &m); +} + Filsys* filsysinit(Channel *cxfidalloc) { @@ -506,7 +517,9 @@ filsysopen(Filsys *fs, Xfid *x, Fid *f) } if(((f->dir->perm&~(DMDIR|DMAPPEND))&m) != m) goto Deny; - + + if(FILE(f->qid) == Qtap) + toggletap(Fon); sendp(x->c, xfidopen); return nil; @@ -616,6 +629,8 @@ filsysclunk(Filsys *fs, Xfid *x, Fid *f) if(f->open){ f->busy = FALSE; f->open = FALSE; + if(FILE(f->qid) == Qtap) + toggletap(Foff); sendp(x->c, xfidclose); return nil; } |