⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc120.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 3 页
字号:






                        NETWORK PL1 SUBPROGRAMS















                             April 21, 1971

                            Mark Krilanovich

                         Computer Research Lab

                        University of California

                       Santa Barbara, California


























                                                                [Page 1]

RFC 120                 NETWORK PL1 SUBPROGRAMS


                                PREFACE

   The subroutines described in this document have been implemented at UCSB
   and make the Network (via the NCP) accessible to PL1 programs executing
   in the 360/75.  They are callable from within any PL1 main program or
   subroutine compiled at UCSB.


   A  set  of  assembly-language  written  subprograms  is  provided  to
   facilitate  the use of the Network by PL1 programmers.  They serve as
   an interface between the user and the Network Control Program  (NCP),
   which supervises all Network operations at this site.


   A concept  fundamental  to  PL1  Network  operations  is  that  of  a
   completion code variable.  Associated with each socket that is not in
   the closed state is a  unique  variable,  called  a  completion  code
   variable.   This  variable  serves  two  purposes:  it identifies the
   local socket referenced, and upon  completion  of  the  operation  it
   contains  a  completion code to indicate the outcome of the operation
   to the programmer.  It may be used at any time for any purpose  other
   than  Network  operations.   Its  value at the beginning of a Network
   operation is immaterial;  rather, it is the variable itself  that  is
   important.   In  all  Network  operations, whenever a completion code
   variable is called  for,  the  only  acceptable  attributes  for  the
   variable are BINARY FIXED(31,0)ALIGNED.

   In general, the subprograms will initiate the  operation,  and  enter
   the WAIT state (consume no CPU time) until notified by the NCP of the
   completion of the operation.  For  such  operations,  the  programmer
   supplies  a  time  limit,  with  attributes BINARY FIXED(31,0), which
   specifies, in tenths of a second, the  maximum  length  of  time  the
   subprogram  is  to  wait for the operation to complete.  If this time
   limit is exceeded, a completion code  is  supplied  to  indicate  the
   error,  and  control  is  returned  to  the calling program, with the
   operation still pending.

   In those operations requiring a socket to be specified by its  socket
   identifier,   the  following  format  is  used.   The  identifier  is
   specified as a BINARY FIXED(31,0) array, singly dimensioned  with  at
   least  two  elements,  and  with a lower subscript bound of one.  The
   first element is taken to be the site number, and the second  element
   the  socket  number.   A  socket number may have any value, positive,
   negative, or zero.  Since negative numbers are represented internally
   in two's complement form, for the purposes of the gender of a socket,
   a socket number is even or odd  according  to  whether  its  absolute
   value is even or odd, respectively.




                                                                [Page 2]

RFC 120                 NETWORK PL1 SUBPROGRAMS


   Following is a description  of  each  subprogram,  its  function  and
   calling sequence.

(1)  OPEN

     By invoking this subprogram, the user requests that  the  specified
     local  socket be removed from the closed state and thus be prepared
     to  participate  in  data  transfer.   There  are  three   distinct
     operations  that can be performed by this subprogram, and these are
     described below:

     (A)  CONNECT

          By initiating this  operation,  the  user  requests  that  the
          specified local socket be logically connected to the specified
          foreign socket, and that data transfer between the two sockets
          be enabled.  The subprogram will wait until the foreign socket
          either  accepts  or  rejects  the  connection  attempt.   This
          operation  is  valid  only  when  the  socket is in the closed
          state.

          The calling sequence is as follows:

               CALL @OPEN(cmpcd, time,lclsck,fgnsck,ws);

          where

               'cmpcd' is the completion code variable to be associated
                    with the local socket.
               'time' is the length of time the subprogram is to wait
                    for the completion of the operation.
               'lclsck' is the socket identifier of the local socket.
               'fgnsck' is the socket identifier of the foreign socket.
               'ws' is a workspace which has the same attributes as a
                    socket identifier, and, if the operation if
                    successful, will become associated with the local
                    socket for the life of the connection.  In response
                    to certain future operations, information may be
                    returned to the programmer in this workspace.

          The  following  completion  codes  are   possible   for   this
          operation:

               0,  The operation was successful and the connection has
                   been established
               4,  The specified completion code variable is already
                   assigned to a socket;  the operation was suppressed
               8,  The specified local socket is not in the closed



                                                                [Page 3]

RFC 120                 NETWORK PL1 SUBPROGRAMS


                   state;  the operation was suppressed
              12,  All communication paths to the specified foreign site
                   are in use;  the operation was suppressed
              16,  Local resources are insufficient to support another
                   connection;  the operation was suppressed
              20,  The connection attempt was rejected by the foreign
                   process
              24,  The specified local socket is not local to UCSB;  the
                   operation was suppressed
              28,  The specified foreign site is invalid;  the operation
                   was suppressed
              32,  An addressing or protection exception was encountered
                   with respect to the specified workspace;  the
                   operation was suppressed
              36,  Either hardware at the foreign site is inoperative or
                   the NCP's counterpart at the foreign site does not
                   exist or has failed
              40,  Local and foreign sockets are both either send or
                   receive sockets;  the operation was suppressed
              44,  By operator command, all Network operations were
                   terminated;  the socket will be closed
              60,  An NCP control transmission error occured;  the
                   operation was suppressed
             252,  The specified time limit was exceeded;  the operation
                   was initiated but not completed

     (B)  LISTEN

          This operation is a request for notification of any connection
          attempt  directed  toward  the  specified  local  socket.  The
          subprogram waits until such a call is received, at which  time
          the  calling  process'  socket  identifier  is returned to the
          calling program.   This  operation  is  valid  only  when  the
          designated  local  socket is in the closed state.  The calling
          sequence is as follows:

               CALL @OPEN(cmpcd, time,lclsck,ws);

          where

               'cmpcd' is the completion code variable to be associated
                    with the local socket.
               'time' is the length of time the subprogram is to wait
                    for the completion of the operation.
               'lclsck' is the socket identifier of the local socket.
               'ws' is a workspace which, if the operation is
                    successful, will contain the socket identifier of
                    the calling socket, and will become associated with



                                                                [Page 4]

RFC 120                 NETWORK PL1 SUBPROGRAMS


                    the local socket for the life of the connection.
                    'ws' has the same attributes as a socket identifier.

          The  following  completion  codes  are   possible   for   this
          operation:

               0,  The operation was successful and a call has been
                   received
               4,  The specified completion code variable is already
                   assigned to a socket;  the operation was suppressed
               8,  The specified local socket is not in the closed
                   state;  the operation was suppressed
              12,  Local resources are insufficient to support another
                   connection;  the operation was suppressed
              16,  The specified local socket is not local to UCSB;  the
                   operation was suppressed
              20,  An addressing or protection exception was encountered
                   with respect to the specified workspace;  the
                   operation was suppressed
              44,  By operator command, all Network operations were
                   terminated;  the socket will be closed
             252,  The specified time limit was exceeded;  the operation
                   was initiated but not completed

     (C)  ACCEPT

          This operation accepts  connection  with  the  foreign  socket
          whose  call  caused successful completion of a previous LISTEN
          operation by the specified local socket.  After completion  of
          this  operation,  data may be transferred to or from the local
          socket, depending on its gender.  This operation is valid only
          when  the  last  operation  referencing the local socket was a
          LISTEN  operation.   The  subprogram  will  wait   until   the
          operation is completed.

          The calling sequence is as follows:

               CALL @OPEN(cmpcd, time);

          where

               'cmpcd' is the completion code variable associated with
                    the local socket by a previous LISTEN operation.
                'time' is the length of time the subprogram is to wait
                    for the completion of the operation.

          The  following  completion  codes  are   possible   for   this
          operation:



                                                                [Page 5]

RFC 120                 NETWORK PL1 SUBPROGRAMS


               0,  The operation was successful, and the connection is
                   established
               4,  The specified local socket is in the closed state
                   (the NCP may have received an abort notification from
                   the foreign process);  the operation was suppressed
               8,  The previous operation specifying the designated
                   local socket was not a LISTEN;  the operation was
                   suppressed
              12,  All communication paths to the specified foreign site
                   are in use;  the socket has been returned to the
                   closed state
             252,  The specified time limit was exceeded;  the operation
                   was initiated but not completed

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -