Annotation of researchv10dc/man/man4/ttyld.4, revision 1.1.1.1

1.1       root        1: .TH TTYLD 4
                      2: .CT 2 comm_term
                      3: .SH NAME
                      4: tty_ld \- terminal processing line discipline
                      5: .SH SYNOPSIS
                      6: .B #include <sys/ttyio.h>
                      7: .SH DESCRIPTION
                      8: .I Tty_ld
                      9: is usually inserted
                     10: into a stream
                     11: connected to a terminal device.
                     12: It gathers input into lines,
                     13: handles special characters like erase, kill, and interrupt,
                     14: inserts output delays,
                     15: and the like.
                     16: It does not deal with hardware parameters
                     17: such as speed and parity;
                     18: see
                     19: .IR tty (4)
                     20: for such matters.
                     21: .PP
                     22: Certain special characters have particular meaning on input.
                     23: These characters are not passed to a program
                     24: except in raw mode, where they lose their special character.
                     25: It is possible to change these characters from the default.
                     26: .PP
                     27: The
                     28: .I erase
                     29: character
                     30: (backspace by default)
                     31: erases the last-typed character.
                     32: It will not erase beyond the beginning of a line or
                     33: an end-of-file character.
                     34: .PP
                     35: The
                     36: .I kill
                     37: character
                     38: (default
                     39: .BR @ )
                     40: erases the entire preceding part of the line, but not beyond
                     41: an end-of-file character.
                     42: .PP
                     43: The
                     44: .I end-of-file
                     45: character
                     46: (default
                     47: .RB control- d )
                     48: causes any characters
                     49: waiting to be read
                     50: to be passed immediately
                     51: to the program,
                     52: without waiting for newline.
                     53: The
                     54: end-of-file character itself is discarded.
                     55: Thus if the end-of-file character
                     56: occurs at the beginning of a line,
                     57: there are no characters waiting,
                     58: and zero characters will be passed back;
                     59: this is
                     60: the standard end-of-file indication.
                     61: .PP
                     62: The
                     63: .I escape
                     64: character
                     65: .RB ( \e )
                     66: escapes a following erase, kill, or end-of-file character
                     67: and allows it to be treated as ordinary data.
                     68: .PP
                     69: The
                     70: .I interrupt
                     71: character
                     72: (default
                     73: DEL)
                     74: is not passed to a program but sends
                     75: signal
                     76: .L SIGINT
                     77: to any processes in the process group of the stream;
                     78: see
                     79: .IR signal (2)
                     80: and
                     81: .IR stream (4).
                     82: .PP
                     83: The
                     84: .I quit
                     85: character
                     86: (default
                     87: FS,
                     88: .RB control- \e )
                     89: sends signal
                     90: .BR SIGQUIT .
                     91: .PP
                     92: The
                     93: .I stop
                     94: character
                     95: (default DC3,
                     96: .RB control- s )
                     97: delays printing on the terminal
                     98: until something is typed in.
                     99: .PP
                    100: The
                    101: .I start
                    102: character
                    103: (default DC1,
                    104: .RB control- q )
                    105: restarts printing after 
                    106: a stop character without generating
                    107: any input to a program.
                    108: .PP
                    109: Two
                    110: .IR ioctl (2)
                    111: calls affect these characters:
                    112: .TF TIOCGETC
                    113: .TP
                    114: .B TIOCGETC
                    115: The argument points to a
                    116: .B tchars
                    117: structure to be filled in with current settings.
                    118: .TP
                    119: .B TIOCSETC
                    120: The argument points to a
                    121: .B tchars
                    122: structure from which the characters are set.
                    123: .PD
                    124: .PP
                    125: The
                    126: .B tchars
                    127: structure, as defined in
                    128: .LR <sys/ttyio.h> ,
                    129: is
                    130: .PP
                    131: .EX
                    132: .ta \w'struct 'u +\w'tchars 'u +\w't_startc; 'u
                    133: struct tchars {
                    134:        char    t_intrc;        /* interrupt */
                    135:        char    t_quitc;        /* quit */
                    136:        char    t_startc;       /* start output */
                    137:        char    t_stopc;        /* stop output */
                    138:        char    t_eofc; /* end-of-file */
                    139:        char    t_brkc; /* input delimiter (like nl) */
                    140: };
                    141: .EE
                    142: .PP
                    143: A character value of 0377
                    144: eliminates the effect of that character.
                    145: The
                    146: .L t_brkc
                    147: character, by default 0377,
                    148: acts like a new-line in that it terminates a line,
                    149: is echoed, and is passed to the program.
                    150: The stop and start characters may be the same,
                    151: to produce a toggle effect.
                    152: It is counterproductive to make
                    153: other special characters (including erase and kill)
                    154: identical.
                    155: .PP
                    156: Two
                    157: .I ioctl
                    158: calls affect other terminal processing parameters:
                    159: .TF TIOCGETP
                    160: .TP
                    161: .B TIOCGETP
                    162: The argument points to a
                    163: .B sgttyb
                    164: structure to be filled in with the current settings.
                    165: .TP
                    166: .B TIOCSETP
                    167: The argument points to a 
                    168: .B sgttyb
                    169: structure from which the parameters are set.
                    170: .PD
                    171: .PP
                    172: The
                    173: .B sgttyb
                    174: structure, as
                    175: defined in
                    176: .LR <sys/ttyio.h> ,
                    177: is
                    178: .EX
                    179: .ta \w'struct 'u +\w'sgttyb 'u +\w'sg_ispeed 'u
                    180: struct sgttyb  {
                    181:        char    sg_ispeed;      /* unused */
                    182:        char    sg_ospeed;      /* unused */
                    183:        char    sg_erase;       /* erase character */
                    184:        char    sg_kill;        /* kill character */
                    185:        short   sg_flags;       /* mode flags */
                    186: };
                    187: .EE
                    188: .PP
                    189: The flag bits are
                    190: .PP
                    191: .ta \w'\f5ALLDELAY\fP 'u +\w'\f50100000\fP 'u
                    192: .nf
                    193: \f5ALLDELAY    0177400\fP      Delay algorithm selection
                    194: \f5VTDELAY     0040000\fP      Form-feed and vertical-tab delays:
                    195: \f5FF0 0\fP
                    196: \f5FF1 0040000\fP
                    197: \f5CRDELAY     0030000\fP      Carriage-return delays:
                    198: \f5CR0 0\fP
                    199: \f5CR1 0010000\fP
                    200: \f5CR2 0020000\fP
                    201: \f5CR3 0030000\fP
                    202: \f5TBDELAY     0006000\fP      Tab delays:
                    203: \f5TAB0        0\fP
                    204: \f5TAB1        0002000\fP
                    205: \f5TAB2        0004000\fP
                    206: \f5XTABS       0006000\fP
                    207: \f5NLDELAY     0001400\fP      New-line delays:
                    208: \f5NL0 0\fP
                    209: \f5NL1 0000400\fP
                    210: \f5NL2 0001000\fP
                    211: \f5NL3 0001400\fP
                    212: \f5RAW 0000040\fP      Raw mode: wake up on all characters
                    213: \f5CRMOD       0000020\fP      Map CR into LF; echo LF or CR as CR-LF
                    214: \f5ECHO        0000010\fP      Echo (full duplex)
                    215: \f5LCASE       0000004\fP      Map upper case to lower on input
                    216: \f5CBREAK      0000002\fP      Return each character as soon as typed
                    217: \f5TANDEM      0000001\fP      Automatic flow control
                    218: .DT
                    219: .fi
                    220: .PP
                    221: The delay bits specify how long
                    222: transmission stops to allow for mechanical or other movement
                    223: when certain characters are sent to the terminal.
                    224: In all cases a value of 0 indicates no delay.
                    225: .PP
                    226: If a form-feed/vertical tab delay is specified,
                    227: it lasts for about 2 seconds.
                    228: .PP
                    229: Carriage-return delay type 1 lasts about .08 seconds;
                    230: type 2 about .16 seconds;
                    231: type 3 about .32 seconds.
                    232: .PP
                    233: New-line delay type 1 is supposed to be for the Teletype model 37;
                    234: type 2 is about .10 seconds.
                    235: .PP
                    236: Tab delay type 1 is supposed to be for the Teletype model 37.
                    237: Type 3, called 
                    238: .LR XTABS ,
                    239: is not a delay at all but causes tabs to be replaced
                    240: by the appropriate number of spaces on output.
                    241: .PP
                    242: In
                    243: .B RAW
                    244: mode,
                    245: every character is passed immediately
                    246: to the program without waiting until a full line has been typed.
                    247: No erase or kill processing is done;
                    248: the end-of-file, interrupt, and quit characters
                    249: are not treated specially.
                    250: There are no delays and no echoing, and no replacement of
                    251: one character for another.
                    252: .PP
                    253: .L CRMOD
                    254: causes input carriage returns to be turned into
                    255: new-lines;
                    256: input of either CR or LF causes CR-LF both to
                    257: be echoed
                    258: (for terminals without a new-line function).
                    259: .PP
                    260: .L CBREAK
                    261: is a sort of half-cooked mode.
                    262: Programs read each character as soon as typed, instead
                    263: of waiting for a full line,
                    264: but quit and interrupt work, and output delays
                    265: .LR CRMOD ,
                    266: .LR XTABS ,
                    267: and
                    268: .LR ECHO
                    269: work normally.
                    270: On the other hand there is no erase or kill,
                    271: and no special treatment of
                    272: .L \e
                    273: or end-of-file.
                    274: .PP
                    275: .L TANDEM
                    276: mode causes the system to transmit
                    277: the stop character whenever the input
                    278: queue is in danger of overflowing,
                    279: and the start character
                    280: when the input queue has drained sufficiently.
                    281: It is useful for flow control when the `terminal'
                    282: is actually another machine that obeys the conventions.
                    283: .SH SEE ALSO
                    284: .IR getty (8), 
                    285: .IR stty (1), 
                    286: .IR signal (2), 
                    287: .IR ioctl (2), 
                    288: .IR stream (4),
                    289: .IR tty (4)
                    290: .SH BUGS
                    291: The
                    292: escape character
                    293: cannot be changed.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.