summaryrefslogtreecommitdiff
path: root/appl/acme/xfid.m
diff options
context:
space:
mode:
Diffstat (limited to 'appl/acme/xfid.m')
-rw-r--r--appl/acme/xfid.m34
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;
+ };
+};