
  TYPE
    oct$output_segment_descriptor = record
      name: ost$name,
      used_attributes: oct$segment_attributes,
      unused_attributes: oct$segment_attributes,
      extensible_attribute: oct$extensible_attributes,
      r1: ost$ring,
      r2: ost$ring,
      r3: ost$ring,
      global_key: ost$key_lock_value,
      local_key: ost$key_lock_value,
      retained_common_block: boolean,
      number_predefined: boolean,
      number: oct$segment,
      binding_section_encountered: boolean,
      binding_section_segment: ost$segment,
      binding_section_offset: ost$segment_length,
      section_ordinal: llt$section_ordinal,
      number_of_bytes_written: ost$segment_length,
      relocation_list: oct$segment_relocation_list,
      sections_allocated: oct$program_name_list,
      inhibit_binding_check: boolean,
      cybil_default_heap: boolean,
      id: amt$file_identifier,
      segment: amt$segment_pointer,
      offset: 0 .. osc$max_segment_length - 1,
      link: ^oct$output_segment_descriptor,
    recend;

  TYPE
    oct$segment_relocation_list = record
      link: ^oct$segment_relocation_list,
      pva: ^ost$pva,
    recend;

  TYPE
    oct$extensible_attributes = (occ$unallocated_extensible,
          occ$allocated_extensible, occ$non_extensible);

*copyc amt$file_identifier
*copyc amt$segment_pointer
*copyc llt$section_address
*copyc oct$program_name_list
*copyc oct$segment
*copyc oct$segment_attributes
*copyc osd$virtual_address
*copyc ost$name
