(******************************************************************************
*                        Olivetti Research Laboratory                         *
*******************************************************************************


        #####   ########  #######   ##    ##    ####    ##    ##  ######   
       #######  ########  ########  ##    ##   ######   ###   ##  #######  
      ##        ##        ##    ##  ##    ##  ##    ##  ####  ##  ##    ## 
      ##        ######    ########  ########  ########  ## ## ##  ##    ## 
      ##        ##        #######   ##    ##  ##    ##  ##  ####  ##    ## 
      ##        ##        ##  ##    ##    ##  ##    ##  ##  ####  ##    ## 
       #######  ##        ##   ##   ##    ##  ##    ##  ##   ###  #######  
        #####   ##        ##    ##  ##    ##  ##    ##  ##    ##  ######   

                          ######    ########  ######## 
                          #######   ########  ######## 
                          ##    ##  ##        ##       
                          ##    ##  ######    ######   
                          ##    ##  ##        ##       
                          ##    ##  ##        ##       
                          #######   ########  ##       
                          ######    ########  ##       


*******************************************************************************
*     I. D. Wilson           Last Modified   -   IDW   -   16/10/87           *
******************************************************************************)



VERSION = 3



PROCEDURE findcfrinfo( device, address, config )  PROTOCOL exactlyonce

    INT device   OUT
    INT address  OUT
    INT config   OUT

    (*
    **  Return the CFR information about the current station and its
    **  device driver.
    **
    **      device      is the ID of the CFR device driver
    **      address     is the address of the CFR station
    **      config      is the configuration of the CFR station
    *)

END findcfrinfo



PROCEDURE findpublicassociation( association )  PROTOCOL exactlyonce

    INT association  OUT

    (*
    **  Return the details of the public association which is set up on each
    **  machine.  This call is needed for the Secretary Stub and Secretary
    **  Service to get in contact with one another.  
    **
    **      association    is the public association ID
    *)

END findpublicassociation



PROCEDURE extractinfo( association, port, peeraddr, peerport, timeout )  PROTOCOL exactlyonce

    INT association  IN
    INT port         OUT
    INT peeraddr     OUT
    INT peerport     OUT
    INT timeout      OUT
    
    (*
    **  Given an association identifier, extract the constituent components
    **  of the association record, and return the values to the caller.
    **
    **      association    is the association ID
    **      port           is the local port ID
    **      peeraddr       is the peer station address
    **      peerport       is the peer port ID
    **      timeout        is the association timeout
    *)

END extractinfo



PROCEDURE addassociation( association, port, peeraddr, peerport, timeout )  PROTOCOL exactlyonce

    INT association  OUT
    INT port         OUT
    INT peeraddr     IN
    INT peerport     IN
    INT timeout      IN

    (*
    **  Create a new association record for the details given, and return
    **  to the user the association identifier.  Further information can be
    **  obtained using "extractinfo".
    **
    **      association    is the new association ID
    **      port           is the new port ID
    **      peeraddr       is the peer station address
    **      peerport       is the peer port ID
    **      timeout        is the association timeout
    *)

END addassociation



PROCEDURE modifyassociation( association, peeraddr, peerport, timeout )  PROTOCOL exactlyonce

    INT association  IN
    INT peeraddr     IN
    INT peerport     IN
    INT timeout      IN
    
    (*
    **  Given an association identifier, alter the information held therein
    **  to conform to the new values given.  Note that the manifest value
    **  "unchanged" can be passed to leave one or more of the items unaltered.
    **
    **      association    is the association ID
    **      peeraddr       is the new peer station address
    **      peerport       is the new peer port ID
    **      timeout        is the new association timeout
    *)

END modifyassociation



PROCEDURE deleteassociation( association )  PROTOCOL exactlyonce

    INT association  IN

    (*
    **  Delete the record association with the association identifier
    **  given.
    **
    **      association    is the association ID
    *)

END deleteassociation
