diff options
Diffstat (limited to 'appl/acme/xfid.m')
| -rw-r--r-- | appl/acme/xfid.m | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/appl/acme/xfid.m b/appl/acme/xfid.m new file mode 100644 index 00000000..c0d10fa7 --- /dev/null +++ b/appl/acme/xfid.m @@ -0,0 +1,34 @@ +Xfidm : module { + PATH : con "/dis/acme/xfid.dis"; + + Xnil, Xflush, Xwalk, Xopen, Xclose, Xread, Xwrite : con iota; + + init : fn(mods : ref Dat->Mods); + + newxfid : fn() : ref Xfid; + xfidkill : fn(); + + Xfid : adt { + tid : int; + fcall : ref Styx->Tmsg; + next : cyclic ref Xfid; + c : chan of int; + f : cyclic ref Dat->Fid; + buf : array of byte; + flushed : int; + + ctl : fn(x : self ref Xfid); + flush: fn(x : self ref Xfid); + walk: fn(x : self ref Xfid, c: chan of ref Windowm->Window); + open: fn(x : self ref Xfid); + close: fn(x : self ref Xfid); + read: fn(x : self ref Xfid); + write: fn(x : self ref Xfid); + ctlwrite: fn(x : self ref Xfid, w : ref Windowm->Window); + eventread: fn(x : self ref Xfid, w : ref Windowm->Window); + eventwrite: fn(x : self ref Xfid, w : ref Windowm->Window); + indexread: fn(x : self ref Xfid); + utfread: fn(x : self ref Xfid, t : ref Textm->Text, m : int, n : int, qid : int); + runeread: fn(x : self ref Xfid, t : ref Textm->Text, m : int, n : int) : int; + }; +}; |
