PROC activate_file_server (
  destination_mainframe_is, dmi     : key client, server, loop = $required
  destination_mainframe_id, ..
  dmid                       : name 17 = $required
  number_of_monitor_queue_entries, nomqe : integer 0..126 = 50
  number_of_task_queue_entries, notqe    : integer 1..126 = 4
  number_of_pps, nopp        : key one, dual = dual
  dma                        : boolean = TRUE
  divisions_per_mainframe, ..
  dpm                        : integer 1..16 = 8
  timeout_interval, ti       : integer 1..255 = 10
  maximum_request_timeout_count, ..
  mrtc                       : integer 1..255 = 5
  maximum_retransmission_count, ..
  mrc                        : integer 1..255 = 5
  activate, a                : boolean = FALSE
  data_transfer_size, dts    : key #16K, #32K, #65K, #131K, #262K = #262K
  status                     : var of status = $optional
  )

 " This proc provides the information needed to define the file server
 " connections for the NOS/VE development closed shop mainframes.
 " All connecting mainframes must be defined prior to activating
 " the file server.  This proc is used to define one connection to another
 " mainframe.  The only parameters required are whether the destination
 " mainframe is a client of server, and the mainframe identifier of the
 " destination mainframe.  If this is to be run in 'LOOP' back mode, the
 " destination mainframe should be specified as $SYSTEM_0990_7777

  " ======= BASIC SETUP COMMANDS =========================================
  create_variable test_loopback k=string scope=xdcl
  crev ignore status
  incl 'ved file_server ' status=ignore

  " Determine Dma_available
  dma_value = $value(dma)

  " ===== DEFINE_STORNET_CONNECTION =====================================
  crev stornet_status status
  base_flag = 0
  base_address = 2097152
"  sdp=((ch7, $system_0855_0260, iou0))
  stornet_name = 'stornet260'
  disv ' Defining stornet connection ' o=$response
  define_stornet_connection element_name=$name(stornet_name) memory_size=4194304 memory_base=base_address ..
        flag_base=base_flag half_ecs_switch=no number_of_mainframes=6 ..
        divisions_per_mainframe=$value(divisions_per_mainframe) ..
        data_transfer_size= $value(data_transfer_size) ..
        status=stornet_status

  IF NOT stornet_status.normal THEN
    IF $condition_name(stornet_status.condition) = 'DFE$STORNET_ALREADY_DEFINED' THEN
      disv ' Stornet already defined - Continuing with defining client/server '  o=$response
    ELSE
       disv ' error in define_stornet_connection '    o=$response
       disv stornet_status     o=$response
       disv ' Continuing ------- '    o=$response
    IFEND
  IFEND


  " ==== DETERMINE DESTINATION MAINFRAME =======================
  destination_mainframe_name = $string($value(destination_mainframe_id))

  " Determine served family

  served_family = 'testing'
  IF ($string($value(destination_mainframe_is)) = 'SERVER') THEN
    IF destination_mainframe_name = '$SYSTEM_9323_2001' THEN
      served_family = 'tan'
    ELSEIF destination_mainframe_name = '$SYSTEM_0855_0260' THEN
      served_family = 'yellow'
    ELSEIF destination_mainframe_name = '$SYSTEM_0855_0109' THEN
      served_family = 'green'
    ELSEIF destination_mainframe_name = '$SYSTEM_0830_0631' THEN
      served_family = 'nvedev'
    ELSEIF destination_mainframe_name = '$SYSTEM_0990_0102' THEN
     served_family = 'nve'
    ELSEIF destination_mainframe_name = '$SYSTEM_9603_0102' THEN
     served_family = 'cobalt'
    IFEND
    disv ' Served family :'//served_family o=$response
  IFEND

  " ======== DETERMINE ID AND CHANNELS   =========================
  midn_0855_0260 = 1
  midn_9323_2001 = 2
  midn_0830_0631 = 3
  midn_0855_0109 = 4
  midn_0990_0102 = 5
  midn_9603_0102 = 6
  send_iou = 'IOU0'
  receive_iou = 'IOU0'
  IF $mainframe(id) = '$SYSTEM_0855_0260' THEN
    source_id_number = midn_0855_0260
    send_channel = 'CH2'
    receive_channel = 'CH2'
    accessed_family = 'yellow'
  ELSEIF $mainframe(id) = '$SYSTEM_9323_2001' THEN
    source_id_number = midn_9323_2001
    send_channel = 'CH2'
    receive_channel = send_channel
    accessed_family = 'tan'
  ELSEIF $mainframe(id) = '$SYSTEM_0830_0631' THEN
    source_id_number = midn_0830_0631
    send_channel = 'CH23'
    receive_channel = send_channel
    accessed_family = 'nvedev'
  ELSEIF $mainframe(id) = '$SYSTEM_0990_0102' THEN
    source_id_number = midn_0990_0102
    send_channel = 'CCH7'
    send_iou = 'IOU1'
    IF $STRING($value(number_of_pps)) = 'DUAL' THEN
      receive_channel = 'CCH1'
    ELSE " use one channel
      receive_channel = send_channel
    IFEND
    accessed_family = 'nve'
  ELSEIF $mainframe(id) = '$SYSTEM_0855_0109' THEN
    source_id_number = midn_0855_0109
    send_channel = 'CCH3'
    IF $STRING($value(number_of_pps)) = 'DUAL' THEN
      receive_channel = 'CCH5'
    ELSE " use one channel
      receive_channel = send_channel
    IFEND
    accessed_family = 'green'
  ELSEIF $mainframe(id) =  '$SYSTEM_9603_0102' THEN
    source_id_number = midn_9603_0102
    send_channel = 'CCH3'
    receive_channel = send_channel
    accessed_family = 'cobalt'
  IFEND

  IF destination_mainframe_name = '$SYSTEM_0855_0260' THEN
    destination_id_number = midn_0855_0260
  ELSEIF destination_mainframe_name = '$SYSTEM_9323_2001' THEN
    destination_id_number = midn_9323_2001
  ELSEIF destination_mainframe_name = '$SYSTEM_0830_0631' THEN
    destination_id_number = midn_0830_0631
  ELSEIF destination_mainframe_name = '$SYSTEM_0855_0109' THEN
    destination_id_number = midn_0855_0109
  ELSEIF destination_mainframe_name = '$SYSTEM_0990_0102' THEN
   destination_id_number = midn_0990_0102
  ELSEIF destination_mainframe_name = '$SYSTEM_9603_0102' THEN
   destination_id_number = midn_9603_0102
  IFEND

  IF $string($value(destination_mainframe_is)) = 'LOOP' THEN
    "NOTE: SERVER mainframe name is hard coded in the
    "cybil deck dfc$loopback_server_mainframe
    destination_mainframe_name = '$SYSTEM_0990_7777'
  IFEND


  " ======== DEFINE CLIENT OR SERVER AS NEEDED ==================
  IF ($string($value(destination_mainframe_is)) = 'SERVER') THEN
    disv ' Defining server '//destination_mainframe_name  o=$response
    define_server  ..
          server_mainframe_identifier= $name(destination_mainframe_name) ..
          client_id_number= source_id_number ..
          server_id_number= destination_id_number ..
          number_of_monitor_queue_entries= $value(nomqe) ..
          number_of_task_queue_entries= $value(notqe) ..
          connection_type= stornet ..
          element_name=$name(stornet_name) ..
          send_channel= ($name(send_channel), $name(send_iou)) ..
          receive_channel= ($name(receive_channel), $name(receive_iou)) ..
          dma_available= dma_value ..
          timeout_interval= $value(ti) ..
          maximum_request_timeout_count= $value(mrtc) ..
          maximum_retransmission_count= $value(mrc) ..
          users_wait_on_terminated= false

    IF $value(activate) THEN
      disv ' Activating server '//destination_mainframe_name  o=$response
      activate_server $name(destination_mainframe_name)
    IFEND
  IFEND

  IF ($string($value(destination_mainframe_is)) = 'CLIENT') THEN
    disv ' Defining client '//destination_mainframe_name o=$response
    define_client client_mainframe_identifier= $name(destination_mainframe_name) ..
          client_id_number= destination_id_number ..
          server_id_number= source_id_number ..
          number_of_monitor_queue_entries= $value(nomqe) ..
          number_of_task_queue_entries= $value(notqe) ..
          connection_type= stornet ..
          element_name=$name(stornet_name) ..
          send_channel= ($name(send_channel), $name(send_iou)) ..
          receive_channel= ($name(receive_channel), $name(receive_iou)) ..
          dma_available= dma_value
    IF $value(activate) THEN
      disv ' Activating client '//destination_mainframe_name o=$response
      activate_client $name(destination_mainframe_name)
    IFEND
  IFEND

  IF ($string($value(destination_mainframe_is)) = 'LOOP') THEN
    change_client_access client_mainframe_identifier=$name($mainframe(id)) ..
          family=$name(accessed_family) family_access=login
    disv ' Defining client '//$mainframe(id)  o=$response
    define_client client_mainframe_identifier= $name($mainframe(id)) ..
          client_id_number= source_id_number ..
          server_id_number= source_id_number ..
          number_of_monitor_queue_entries= $value(nomqe) ..
          number_of_task_queue_entries= $value(notqe) ..
          connection_type= stornet ..
          element_name=$name(stornet_name) ..
          send_channel= ($name(send_channel), $name(send_iou)) ..
          receive_channel= ($name(receive_channel), $name(receive_iou)) ..
          dma_available= dma_value

    disv ' Defining server '//destination_mainframe_name o=$response
    define_server family= ($name(served_family)) ..
          server_mainframe_identifier= $name(destination_mainframe_name) ..
          client_id_number= source_id_number ..
          server_id_number= source_id_number  ..
          number_of_monitor_queue_entries= $value(nomqe) ..
          number_of_task_queue_entries= $value(notqe) ..
          connection_type= stornet ..
          element_name=$name(stornet_name) ..
          send_channel= ($name(send_channel), $name(send_iou)) ..
          receive_channel= ($name(receive_channel), $name(receive_iou)) ..
          dma_available= dma_value ..
          timeout_interval= $value(ti) ..
          maximum_request_timeout_count= $value(mrtc) ..
          maximum_retransmission_count= $value(mrc) ..
          users_wait_on_terminated= false

    IF $value(activate) THEN
      disv ' Activating client '//$mainframe(id) o=$response
      activate_client $name($mainframe(id))

      disv ' Activating server '//destination_mainframe_name o=$response
      activate_server $name(destination_mainframe_name)
    IFEND

  IFEND

PROCEND activate_file_server

