Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ layers(M) — OpenDesktop 1.1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

libwindows(S)

jagent(M)

xtproto(M)

layers(C)

xt(HW)

LAYERS(M)


     LAYERS(M)                            UNIX System V



     Name
          layers - protocol used between host and  windowing  terminal
          under layers(C)


     Syntax
          #include <sys/jioctl.h>


     Description
          layers are asynchronous windows supported by  the  operating
          system  in  a windowing terminal.  Communication between the
          UNIX system processes and terminal processes under layers(C)
          occurs  via  multiplexed  channels managed by the respective
          operating  systems  using  a  protocol   as   specified   in
          xtproto(M).

          The contents of packets transferring  data  between  a  UNIX
          system  process  and a layer are asymmetric.  Data sent from
          the  UNIX  system  to  a  particular  terminal  process   is
          undifferentiated  and  it  is  up to the terminal process to
          interpret the contents of packets.

          Control information  for  terminal  processes  is  sent  via
          channel 0.  Process 0 in the windowing terminal performs the
          designated functions on behalf of the process  connected  to
          the designated channel.  These packets take the form:

          command, channel

          except for timeout and jagent  information  which  take  the
          form

          command, data...

          The commands are the bottom eight bits  extracted  from  the
          following ioctl(S) codes:

          JBOOT     Prepare to load a new terminal  program  into  the
                    designated layer.

          JTERM     Kill the downloaded layer program and restore  the
                    default window program.

          JTIMO     Set the timeout parameters for the protocol.   The
                    data  consist  of  two  bytes:   the  value of the
                    receive timeout in seconds and the  value  of  the
                    transmit timeout in seconds.

          JTIMOM    Set the timeout parameters for the protocol.   The
                    data  consist  of  four  bytes in two groups:  the
                    value of the receive timeout in milliseconds  (the
                    low  eight  bits  followed by the high eight bits)
                    and the value of the transmit timeout (in the same
                    format).

          JZOMBOOT  Like JBOOT, but do not execute the  program  after
                    loading.

          JAGENT    Send a source byte string to  the  terminal  agent
                    routine  and  wait  for  a reply byte string to be
                    returned.

                    The  data  are  from  a  bagent   structure   [see
                    jagent(M)]  and  consist  of a one-byte size field
                    followed by a  two-byte  agent  command  code  and
                    parameters.  Two-byte integers transmitted as part
                    of an agent command are sent with  the  high-order
                    byte  first.   The  response  from the terminal is
                    generally identical to the  command  packet,  with
                    the two command bytes replaced by the return code:
                    0 for success, -1  for  failure.   Note  that  the
                    routines  in  the  libwindows(S)  library all send
                    parameters in an agentrect structure.   The  agent
                    command codes and their parameters are as follows:

                    A_NEWLAYER      followed  by  a  two-byte  channel
                                    number  and  a rectangle structure
                                    (four two-byte coordinates).

                    A_CURRENT       followed  by  a  two-byte  channel
                                    number.

                    A_DELETE        followed  by  a  two-byte  channel
                                    number.

                    A_TOP           followed  by  a  two-byte  channel
                                    number.

                    A_BOTTOM        followed  by  a  two-byte  channel
                                    number.

                    A_MOVE          followed  by  a  two-byte  channel
                                    number and a point to move to (two
                                    two-byte coordinates).

                    A_RESHAPE       followed  by  a  two-byte  channel
                                    number and the new rectangle (four
                                    two-byte coordinates).

                    A_NEW           followed  by  a  two-byte  channel
                                    number  and  a rectangle structure
                                    (four two-byte coordinates).

                    A_EXIT          no parameters needed.

                    A_ROMVERSION    no   parameters    needed.     The
                                    response  packet contains the size
                                    byte, two-byte  return  code,  two
                                    unused  bytes,  and  the parameter
                                    part of  the  terminal  id  string
                                    (e.g., ``8;7;3'').



          Packets from the windowing terminal to the UNIX  system  all
          take the following form:

          command, data...

          The single-byte commands are as follows:

            C_SENDCHAR          Send the next byte to the UNIX  system
                                process.

            C_NEW               Create a new UNIX system process group
                                for  this  layer.  Remember the window
                                size parameters for this  layer.   The
                                data  for  this command is in the form
                                described by the  jwinsize  structure.
                                The size of the window is specified by
                                two 2-byte  integers,  sent  low  byte
                                first.

            C_UNBLK             Unblock transmission  to  this  layer.
                                There is no data for this command.

            C_DELETE            Delete the UNIX system  process  group
                                attached  to  this layer.  There is no
                                data for this command.

            C_EXIT              Exit. Kill  all  UNIX  system  process
                                groups  associated  with this terminal
                                and terminate the session.   There  is
                                no data for this command.

            C_DEFUNCT           Layer  program  has   died,   send   a
                                terminate  signal  to  the UNIX system
                                process groups  associated  with  this
                                terminal.   There  is no data for this
                                command.

            C_SENDNCHARS        The rest of the data are characters to
                                be passed to the UNIX system process.

            C_RESHAPE           The layer has  been  reshaped.  Change
                                the  window  size  parameters for this
                                layer.  The data takes the  same  form
                                as for the C_NEW command.


     See Also
          libwindows(S), jagent(M), xtproto(M), layers(C), xt(HW)


     (printed 2/15/90)                                  LAYERS(M)












































































































































































































































































































































































































































Typewritten Software • bear@typewritten.org • Edmonds, WA 98026