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