
  TYPE
    oct$link_parameters = record
      virtual_image: ^fst$file_reference,
      symbol_table: ^fst$file_reference,
      debug_table: ^fst$file_reference,

      symbol_table_id: ost$name,
      input_debug_table: ^fst$file_reference,

      heap_size_specified: boolean,
      heap_size: ost$segment_length,

      map_file: ^fst$file_reference,
      map_options: pmt$load_map_options,

      starting_segment: oct$segment,
      starting_procedure: pmt$program_name,
      linked_symbols: string (4),
      gate_ring_level: ost$ring,

      modules_to_add: oct$program_name_list,
      object_files_to_add: oct$object_file_descriptor,
      object_libraries_to_use: oct$object_file_descriptor,
      symbol_tables_to_use: oct$symbol_table_descriptor,

      exchange_package_variable: pmt$program_name,

      build_level: pmt$os_name,
      build_level_variables: oct$program_name_list,

      heap_pointers: oct$pointer_list,
      symbol_table_pointers: oct$pointer_list,
      symbol_table_id_variable: pmt$program_name,
      debug_table_pointers: oct$pointer_list,

      recovery_name_table_pointer: oct$pointer_list,
      recovery_addresses: oct$program_name_list,

      ignore_section_names: boolean,
      common_blocks_to_retain: oct$program_name_list,

      mode: oct$mode,
      mc68000_id: amt$file_identifier,
      mc68000_seq: ^SEQ ( * ),

      message_module_list: ^oct$message_module_list,

      delete_declaration_matching: oct$program_name_list,
      preset_value: pmt$initialization_value,

      create_only_predefined_segments: boolean,

      cybil_parameter_checking: string (6),
      defer_entry_points: ^oct$defer_name_list,
      defer_common_blocks: ^oct$defer_name_list,
    recend;

  TYPE
    oct$mode = (occ$template, occ$product, occ$mc68000);

  TYPE
    oct$pointer_list = record
      name: pmt$program_name,
      section_name: pmt$program_name,
      segment_number: ost$segment,
      link: ^oct$pointer_list,
    recend;

  TYPE
    oct$message_module_list = record
      module_name: pmt$program_name,
      pointer_name: pmt$program_name,
      section_name: pmt$program_name,
      segment_number: ost$segment,
      link: ^oct$message_module_list,
    recend;

  TYPE
    oct$defer_name_list = record
      case defer: oct$defer of
      = occ$defer_all, occ$defer_non_retained =
        ,
      = occ$defer, occ$defer_all_except =
        name_list: ^oct$defer_list,
      casend,
    recend,

    oct$defer = (occ$defer_all, occ$defer_non_retained, occ$defer,
          occ$defer_all_except),

    oct$defer_list = record
      name: pmt$program_name,
      name_found: boolean,
      link: ^oct$defer_list,
    recend;

*copyc pmt$program_name
*copyc amt$file_identifier
*copyc fst$file_reference
*copyc oct$object_file_descriptor
*copyc oct$program_name_list
*copyc oct$segment
*copyc oct$symbol_table_descriptor
*copyc osd$virtual_address
*copyc ost$name
*copyc pmt$initialization_value
*copyc pmt$os_name
*copyc pmt$program_description
*copyc pmt$program_name

