PROCEDURE activate_nfs, actnfs (
  cache_delay, cd: integer 0..3600 = 60
  debug_options, do: any of
      key
        all, none
      keyend
      list of key
        (internal_errors, ie)
        (errno_errors, ee)
        (statistics, s)
        (ipam_errors, ipe)
        (nosve_file_errors, nfe)
        (unode_errors, ue)
        (mount_errors, me)
        (xdr_errors, xe)
      keyend
    anyend = none
  maximum_open_files, mof: integer 1..100 = 50
  maximum_working_set, maxws, mws, nfs_maximum_working_set, nmws: any of
      key
        system_default, unlimited
      keyend
      integer 20..65000
    anyend = system_default
  tasks, t: integer 1..4 = 1
  debug, d: boolean = FALSE
  block_size, bs: key
      (small, eight_k)
      (large, sixteen_k)
    keyend = small
  epilog, e: file = nfd$epilog, $system.tcp_ip.onc.epilog
  domain_name_resolver, dnr: boolean = FALSE
  served_family, sf, served_families:list of name
  status)

"   This procedure is under NOS/VE code control because it resides
"   on osf$builtin_library.  The NFS products are under CDCNET
"   code control.  To minimize the number of times a mod is required
"   to both NOS/VE and CDCNET the activate procs call corresponding
"   start procs passing all the parameters.  The start procs reside on
"   onc.command_library which is under CDCNET code control.

  VAR
    nfd$epilog: (push) string = $string(epilog)
    tcp_ip: file = nfd$tcp_ip, $system.tcp_ip
  VAREND

  IF $SPECIFIED(served_family) THEN
    tcp_ip.onc.command_library.start_nfs cd=cache_delay d=debug do=debug_options ..
        mof=maximum_open_files nmws=nfs_maximum_working_set t=tasks bs=block_size ..
        dn=domain_name_resolver sf=served_family
  ELSE
    tcp_ip.onc.command_library.start_nfs cd=cache_delay d=debug do=debug_options ..
        mof=maximum_open_files nmws=nfs_maximum_working_set t=tasks bs=block_size ..
        dn=domain_name_resolver
  IFEND
PROCEND activate_nfs
