package linksem

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type input_section_rec = {
  1. idx : Nat_big_num.num;
  2. fname : string;
  3. img : Elf_memory_image.elf_memory_image;
  4. shndx : Nat_big_num.num;
  5. secname : string;
  6. isec : Elf_interpreted_section.elf64_interpreted_section;
}
type symbol_def_policy =
  1. | AlwaysDefine
  2. | ProvideIfUsed
type input_selector = input_spec list -> input_spec list
type address_expr = Memory_image.expr
type output_guard =
  1. | AlwaysOutput
  2. | OnlyIfRo
  3. | OnlyIfRw
type retain_policy =
  1. | DefaultKeep
  2. | KeepEvenWhenGC
type address_expr_fn_ref = Nat_big_num.num
type 'a address_expr_fn_map = (address_expr_fn_ref, Nat_big_num.num -> 'a -> Nat_big_num.num) Pmap.map
type output_section_composition_element =
  1. | IncludeInputSection of retain_policy * input_section_rec
  2. | IncludeCommonSymbol of retain_policy * string * Nat_big_num.num * Memory_image.symbol_definition * Elf_memory_image.elf_memory_image
  3. | Hole of address_expr_fn
  4. | ProvideSymbol of symbol_def_policy * string * symbol_spec
and sort_policy =
  1. | DefaultSort
  2. | SeenOrder
  3. | ByName
  4. | ByNameThenAlignment
  5. | ByAlignment
  6. | ByAlignmentThenName
  7. | ByInitPriority
and output_section_spec =
  1. | OutputSectionSpec of output_guard * Nat_big_num.num option * string * output_section_composition_element list
and allocated_sections_map =
  1. | AllocatedSectionsMap of (string, output_section_spec * Nat_big_num.num) Pmap.map
and address_expr_fn =
  1. | AddressExprFn of address_expr_fn_ref
type script_element =
  1. | DefineSymbol of symbol_def_policy * string * symbol_spec
  2. | AdvanceAddress of address_expr_fn
  3. | MarkAndAlignDataSegment of Nat_big_num.num * Nat_big_num.num
  4. | MarkDataSegmentEnd
  5. | MarkDataSegmentRelroEnd
  6. | OutputSection of output_guard * address_expr_fn option * string * script_element list
  7. | DiscardInput of input_selector
  8. | InputQuery of retain_policy * sort_policy * input_selector
type linker_control_script = script_element list
type labelled_linker_control_script = (script_element * Nat_big_num.num) list
val all_suffixes : char list -> char list list
val glob_match : char list -> char list -> bool
val only_sections : input_spec list -> input_spec list
val filter_and_concat : (input_spec -> bool) -> input_spec list -> input_spec list
val name_matches : string -> input_spec -> bool
val file_matches : string -> input_spec -> bool
val compareInputSpecByNameThenAlignment : input_spec -> input_spec -> int
val compareInputSpecByAlignment : input_spec -> input_spec -> int
val compareInputSpecByName : input_spec -> input_spec -> int
val compareInputSpecByAlignmentThenName : input_spec -> input_spec -> int
val compareInputSpecByInitPriority : 'a -> 'b -> int
val has_writability : 'a -> input_spec -> bool
val do_output_section_layout_starting_at_addr : Nat_big_num.num -> allocated_sections_map -> output_section_composition_element list -> Nat_big_num.num * Nat_big_num.num list
val output_sec_composition_size_given_start_addr : Nat_big_num.num -> allocated_sections_map -> output_section_composition_element list -> Nat_big_num.num
val sizeof : string -> allocated_sections_map -> Nat_big_num.num
val alignof_output_section_composition_element : output_section_composition_element -> Nat_big_num.num
val alignof_output_section : output_section_composition_element list -> Nat_big_num.num
val interpret_guard : output_guard -> output_section_composition_element list -> 'a -> bool
val label_script_aux : Nat_big_num.num -> script_element list -> (script_element * Nat_big_num.num) list
val label_script : script_element list -> (script_element * Nat_big_num.num) list
type input_output_assignment = input_spec list * (output_section_spec * Nat_big_num.num) list
val compute_def_use_and_gc : allocated_sections_map -> allocated_sections_map
val output_section_type : output_section_composition_element list -> Nat_big_num.num
val output_section_flags : output_section_composition_element list -> Nat_big_num.num
val default_place_orphans : (input_spec list * (output_section_spec * Nat_big_num.num) list) -> input_spec list -> input_spec list * (output_section_spec * Nat_big_num.num) list