1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
};
};
|