


      PPPPTTTTYYYY((((7777))))                      ((((bbbbssssdddd 4444....2222))))                      PPPPTTTTYYYY((((7777))))



      NNNNAAAAMMMMEEEE
           pty - pseudo terminal driver

      SSSSYYYYNNNNTTTTAAAAXXXX
           ppppsssseeeeuuuuddddoooo----ddddeeeevvvviiiicccceeee ppppttttyyyy

      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
           The _p_t_y driver provides support for a device-pair termed a
           _p_s_e_u_d_o _t_e_r_m_i_n_a_l.  A pseudo terminal is a pair of character
           devices, a _m_a_s_t_e_r device and a _s_l_a_v_e device.  The slave
           device provides an interface identical to that described in
           _t_e_r_m_i_o(7).  Typically, devices that provide the interface
           described in _t_e_r_m_i_o(7) have a hardware device of some sort
           behind them.  Instead, the slave device has another process
           manipulating it through the master half of the pseudo
           terminal.  That is, anything written on the master device is
           given to the slave device as input and anything written on
           the slave device is presented as input on the master device.

           The following _i_o_c_t_l calls apply only to pseudo terminals:

           TIOCSTOP
                Stops output to a terminal (e.g. like typing ^S).
                Takes no parameter.

           TIOCSTART
                Restarts output (stopped by TIOCSTOP or by typing ^S).
                Takes no parameter.

           TIOCPKT
                Enable/disable _p_a_c_k_e_t mode.  Packet mode is enabled by
                specifying (by reference) a nonzero parameter and
                disabled by specifying (by reference) a zero parameter.
                When applied to the master side of a pseudo terminal,
                each subsequent _r_e_a_d from the terminal will return data
                written on the slave part of the pseudo terminal
                preceded by a zero byte (symbolically defined as
                TIOCPKT_DATA), or a single byte reflecting control
                status information.  In the latter case, the byte is an
                inclusive-or of zero or more of the bits:

                TIOCPKT_FLUSHREAD
                     whenever the read queue for the terminal is
                     flushed.

                TIOCPKT_FLUSHWRITE
                     whenever the write queue for the terminal is
                     flushed.

                TIOCPKT_STOP
                     whenever output to the terminal is stopped a la
                     ^S.



      Page 1                                                   (9010-E)






      PPPPTTTTYYYY((((7777))))                      ((((bbbbssssdddd 4444....2222))))                      PPPPTTTTYYYY((((7777))))



                TIOCPKT_START
                     whenever output to the terminal is restarted.

                TIOCPKT_DOSTOP
                     whenever _t__s_t_o_p_c is ^S and _t__s_t_a_r_t_c is ^Q.

                TIOCPKT_NOSTOP
                     whenever the start and stop characters are not
                     ^S/^Q.

                This mode is used by _r_l_o_g_i_n(1) and _r_l_o_g_i_n_d(1) to
                implement a remote-echoed, locally ^S/^Q flow-
                controlled remote login with proper back-flushing of
                output; it can be used by other similar programs.

           TIOCREMOTE
                A mode for the master half of a pseudo terminal,
                independent of TIOCPKT.  This mode causes input to the
                pseudo terminal to be flow controlled and not input
                edited (regardless of the terminal mode).  Each write
                to the control terminal produces a record boundary for
                the process reading the terminal.  In normal usage, a
                write of data is like the data typed as a line on the
                terminal; a write of 0 bytes is like typing an end-of-
                file character.  TIOCREMOTE can be used when doing
                remote line editing in a window manager, or whenever
                flow controlled input is required.

      DDDDEEEEVVVVIIIICCCCEEEE CCCCOOOODDDDEEEE
                                    _b_l_o_c_k-_t_y_p_e _o_r  _s_t_a_n_d_a_r_d
           _d_e_v_i_c_e _t_y_p_e         _m_a_j_o_r     _m_i_n_o_r     _c_h_a_r_a_c_t_e_r-_t_y_p_e _f_i_l_e _n_a_m_e

           pseudo terminal          10   0..3 char      /dev/ttyp0..ttyp3
           pseudo terminal          11   0..3 char      /dev/ptyp0..ptyp3

      FFFFIIIILLLLEEEESSSS
           /dev/ptyp[0-3] master (control) pseudo terminals
           /dev/ttyp[0-3] slave pseudo terminals

      DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
           None.














      Page 2                                                   (9010-E)



