1
2 """ BEGIN INCLUDE FILE lisp_iochan.incl.alm
3
4 """ This is the format of the iochan block, which is used to control i/o operations
5 """ There is one iochan block for each logical channel.
6 """ A logical channel converses with a sequence of blocks,
7 """ which are buffers for a stream or segments for amulti-segfile.
8
9 equ iochan.ioindex,0 current character position in buffer or segment
10 equ iochan.iolength,1 number of characters in buffer or segment
11 equ iochan.ioptr,2 -> buffer or base of segment
12 equ iochan.thread,4 threaded list of all open iochans
13 equ iochan.fcbp,6 for tssi_
14 equ iochan.aclinfop,8 ..
15 equ iochan.component,10 0 for stream, comp no for msf
16 equ iochan.charpos,11
17 equ iochan.linel,12
18 equ iochan.flags,13
19 bool iochan.seg,400000 1 => msf, 0 => stream
20 bool iochan.read,200000 0 => openi, 1 => not
21 bool iochan.write,100000 0 => openo, 1 => not
22 bool iochan.gc_mark,40000 for the garbage collector
23 bool iochan.interactive,20000 1 => input => this is the tty
24 " output => flush buff after each operation
25 bool iochan.must_reopen,10000 1 => saved iochan, must re-open before use
26 bool iochan.nlsync,4000 1 => there is a NL in the buffer.
27 bool iochan.charmode,2000 enables "instant" ios_$write
28 bool iochan.extra_nl_done,1000 last char output was extra NL for chrct
29 bool iochan.fixnum_mode,400 for use with in and out functions
30 bool iochan.image_mode,200 just suppress auto-nl
31 bool not_ok_to_read,210400 mask for checking input chan
32 bool not_ok_to_write,110400 mask for checking output chan
33
34 equ iochan.function,14 ** gc-able ** eoffn input or endpagefn output
35 equ iochan.namelist,16 ** gc-able ** list of names, car is directory pathname
36 equ iochan.name,18 stream name or entry name
37 equ iochan.pagel,26
38 equ iochan.linenum,27
39 equ iochan.pagenum,28
40 equ iochan.End,29 size of this structure.
41
42 bool flag_reset_mask,736777 anded into flags after each char
43
44 """ END INCLUDE FILE lisp_iochan.incl.alm