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 a(multi-seg)file.
 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