Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type element = {
startpos : Nat_big_num.num option;
length1 : Nat_big_num.num option;
contents : Byte_pattern.byte_pattern;
}
type allocated_symbols_map =
(string, Nat_big_num.num * Nat_big_num.num) Pmap.map
type expr_operand =
| Var of string
| CursorPosition
| Constant of Nat_big_num.num
| UnOp of expr_unary_operation * expr_operand
| BinOp of expr_binary_operation * expr_operand * expr_operand
and expr_binary_operation =
| Add of expr_operand * expr_operand
| Sub of expr_operand * expr_operand
| BitwiseAnd of expr_operand * expr_operand
| BitwiseOr of expr_operand * expr_operand
type expr =
| False
| True
| Not of expr
| And of expr * expr
| Or of expr * expr
| BinRel of expr_binary_relation * expr_operand
type range = Nat_big_num.num * Nat_big_num.num
type element_range = string * range
type elf_file_feature =
| ElfHeader of Elf_header.elf64_header
| ElfSectionHeaderTable of Elf_section_header_table.elf64_section_header_table
| ElfProgramHeaderTable of Elf_program_header_table.elf64_program_header_table
| ElfSection of Nat_big_num.num * Elf_interpreted_section.elf64_interpreted_section
| ElfSegment of Nat_big_num.num * Elf_interpreted_segment.elf64_interpreted_segment
type symbol_definition = {
def_symname : string;
def_syment : Elf_symbol_table.elf64_symbol_table_entry;
def_sym_scn : Nat_big_num.num;
def_sym_idx : Nat_big_num.num;
def_linkable_idx : Nat_big_num.num;
}
val symDefCompare : symbol_definition -> symbol_definition -> int
val instance_Basic_classes_Ord_Memory_image_symbol_definition_dict :
symbol_definition Lem_basic_classes.ord_class
type symbol_reference = {
ref_symname : string;
ref_syment : Elf_symbol_table.elf64_symbol_table_entry;
ref_sym_scn : Nat_big_num.num;
ref_sym_idx : Nat_big_num.num;
}
val symRefCompare : symbol_reference -> symbol_reference -> int
val instance_Basic_classes_Ord_Memory_image_symbol_reference_dict :
symbol_reference Lem_basic_classes.ord_class
type reloc_site = {
ref_relent : Elf_relocation.elf64_relocation_a;
ref_rel_scn : Nat_big_num.num;
ref_rel_idx : Nat_big_num.num;
ref_src_scn : Nat_big_num.num;
}
val relocSiteCompare : reloc_site -> reloc_site -> int
val instance_Basic_classes_Ord_Memory_image_reloc_site_dict :
reloc_site Lem_basic_classes.ord_class
type reloc_decision =
| LeaveReloc
| ApplyReloc
| ChangeRelocTo of Nat_big_num.num * symbol_reference * reloc_site
val relocDecisionCompare : reloc_decision -> reloc_decision -> int
val instance_Basic_classes_Ord_Memory_image_reloc_decision_dict :
reloc_decision Lem_basic_classes.ord_class
type symbol_reference_and_reloc_site = {
ref : symbol_reference;
maybe_reloc : reloc_site option;
maybe_def_bound_to : (reloc_decision * symbol_definition option) option;
}
val symRefAndRelocSiteCompare :
symbol_reference_and_reloc_site ->
symbol_reference_and_reloc_site ->
int
val instance_Basic_classes_Ord_Memory_image_symbol_reference_and_reloc_site_dict :
symbol_reference_and_reloc_site Lem_basic_classes.ord_class
type !'abifeature range_tag =
| ImageBase
| EntryPoint
| SymbolDef of symbol_definition
| SymbolRef of symbol_reference_and_reloc_site
| FileFeature of elf_file_feature
| AbiFeature of 'abifeature
type !'abifeature annotated_memory_image = {
elements : memory_image;
by_range : (element_range option * 'abifeature range_tag) Pset.set;
by_tag : ('abifeature range_tag, element_range option) Multimap.multimap;
}
val get_empty_memory_image : unit -> 'abifeature annotated_memory_image
val elf_section_is_special :
Elf_interpreted_section.elf64_interpreted_section ->
'a ->
bool
type reloc_calculate_fn =
Nat_big_num.num ->
Nat_big_num.num ->
Nat_big_num.num ->
Nat_big_num.num
type !'abifeature reloc_apply_fn =
'abifeature annotated_memory_image ->
Nat_big_num.num ->
symbol_reference_and_reloc_site ->
Nat_big_num.num * reloc_calculate_fn
type !'abifeature reloc_fn =
Nat_big_num.num ->
bool * 'abifeature reloc_apply_fn
val noop_reloc_calculate : 'a -> 'b -> Nat_big_num.num -> Nat_big_num.num
val noop_reloc_apply :
'a ->
'b ->
'c ->
Nat_big_num.num
* (Nat_big_num.num ->
Nat_big_num.num ->
Nat_big_num.num ->
Nat_big_num.num)
val noop_reloc :
'a ->
bool
* ('abifeature annotated_memory_image ->
Nat_big_num.num ->
symbol_reference_and_reloc_site ->
Nat_big_num.num * reloc_calculate_fn)
type !'abifeature abi = {
is_valid_elf_header : Elf_header.elf64_header -> bool;
make_elf_header : Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> Elf_header.elf64_header;
reloc : 'abifeature reloc_fn;
section_is_special : Elf_interpreted_section.elf64_interpreted_section -> 'abifeature annotated_memory_image -> bool;
section_is_large : Elf_interpreted_section.elf64_interpreted_section -> 'abifeature annotated_memory_image -> bool;
maxpagesize : Nat_big_num.num;
minpagesize : Nat_big_num.num;
commonpagesize : Nat_big_num.num;
symbol_is_generated_by_linker : string -> bool;
make_phdrs : Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num -> 'abifeature annotated_memory_image -> Elf_interpreted_section.elf64_interpreted_section list -> Elf_program_header_table.elf64_program_header_table_entry list;
max_phnum : Nat_big_num.num;
guess_entry_point : 'abifeature annotated_memory_image -> Nat_big_num.num option;
pad_data : Nat_big_num.num -> char list;
pad_code : Nat_big_num.num -> char list;
generate_support : (string * 'abifeature annotated_memory_image) list -> 'abifeature annotated_memory_image;
concretise_support : 'abifeature annotated_memory_image -> 'abifeature annotated_memory_image;
get_reloc_symaddr : symbol_definition -> 'abifeature annotated_memory_image -> (element_range option * symbol_definition) list -> reloc_site option -> Nat_big_num.num;
parse_reloc_info : Uint64_wrapper.uint64 -> Nat_big_num.num * Nat_big_num.num;
}
val align_up_to : Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num
val round_down_to : Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num
val uint32_max : Nat_big_num.num
val uint64_max : Nat_big_num.num
val compl64 : Nat_big_num.num -> Nat_big_num.num
val gcd : Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num
val lcm : Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num
val address_of_range :
(string * (Nat_big_num.num * 'a)) ->
'b annotated_memory_image ->
Nat_big_num.num
val range_contains :
(Nat_big_num.num * Nat_big_num.num) ->
(Nat_big_num.num * Nat_big_num.num) ->
bool
val range_overlaps :
(Nat_big_num.num * Nat_big_num.num) ->
(Nat_big_num.num * Nat_big_num.num) ->
bool
val is_partition :
(Nat_big_num.num * Nat_big_num.num) list ->
(Nat_big_num.num * Nat_big_num.num) list ->
bool
val nat_range : Nat_big_num.num -> Nat_big_num.num -> Nat_big_num.num list
val expand_sorted_ranges :
(Nat_big_num.num * Nat_big_num.num) list ->
Nat_big_num.num ->
bool list ->
bool list
val expand_unsorted_ranges :
(Nat_big_num.num * Nat_big_num.num) list ->
Nat_big_num.num ->
bool list ->
bool list
val swap_pairs :
'a Lem_basic_classes.setType_class ->
'b Lem_basic_classes.setType_class ->
('b * 'a) Pset.set ->
('a * 'b) Pset.set
val by_range_from_by_tag :
'a Lem_basic_classes.setType_class ->
'b Lem_basic_classes.setType_class ->
('a * 'b) Pset.set ->
('b * 'a) Pset.set
val by_tag_from_by_range :
'a Lem_basic_classes.setType_class ->
'b Lem_basic_classes.setType_class ->
('a * 'b) Pset.set ->
('b * 'a) Pset.set
val filter_elements :
((string * element) -> bool) ->
'abifeature annotated_memory_image ->
'abifeature annotated_memory_image
val tag_image :
'abifeature range_tag ->
string ->
Nat_big_num.num ->
Nat_big_num.num ->
'abifeature annotated_memory_image ->
'abifeature annotated_memory_image
val address_to_element_and_offset :
Nat_big_num.num ->
'a annotated_memory_image ->
(string * Nat_big_num.num) option
val element_and_offset_to_address :
(string * Nat_big_num.num) ->
'a annotated_memory_image ->
Nat_big_num.num option
val null_symbol_reference : symbol_reference
val null_elf_relocation_a : Elf_relocation.elf64_relocation_a
val null_symbol_reference_and_reloc_site : symbol_reference_and_reloc_site
val null_symbol_definition : symbol_definition
val pattern_possible_starts_in_one_byte_sequence :
'a option list ->
'a list ->
Nat_big_num.num ->
Nat_big_num.num list
val compute_virtual_address_adjustment :
Nat_big_num.num ->
Nat_big_num.num ->
Nat_big_num.num ->
Nat_big_num.num
val natural_of_be_byte_list : char list -> Nat_big_num.num
val natural_of_le_byte_list : char list -> Nat_big_num.num
val natural_of_byte_list :
Endianness.endianness ->
char list ->
Nat_big_num.num
val extract_natural_field :
Nat_big_num.num ->
element ->
Nat_big_num.num ->
Nat_big_num.num
val natural_to_le_byte_list : Nat_big_num.num -> char list
val natural_to_be_byte_list : Nat_big_num.num -> char list
val natural_to_byte_list :
Endianness.endianness ->
Nat_big_num.num ->
char list
val natural_to_le_byte_list_padded_to :
Nat_big_num.num ->
Nat_big_num.num ->
char list
val natural_to_be_byte_list_padded_to :
Nat_big_num.num ->
Nat_big_num.num ->
char list
val natural_to_byte_list_padded_to :
Endianness.endianness ->
Nat_big_num.num ->
Nat_big_num.num ->
char list
val n2i : Nat_big_num.num -> Nat_big_num.num
val i2n : Nat_big_num.num -> Nat_big_num.num
val i2n_signed : Nat_num.nat -> Nat_big_num.num -> Nat_big_num.num
val to_le_signed_bytes : Nat_big_num.num -> Nat_big_num.num -> char list
val to_le_unsigned_bytes : Nat_big_num.num -> Nat_big_num.num -> char list
val write_natural_field :
Nat_big_num.num ->
Nat_big_num.num ->
element ->
Nat_big_num.num ->
element
val read_memory_image :
'a annotated_memory_image ->
Nat_big_num.num ->
Nat_big_num.num ->
char list option
val read_memory_image_byte_sequence :
'a annotated_memory_image ->
Nat_big_num.num ->
Nat_big_num.num ->
Byte_sequence_wrapper.byte_sequence option
val write_memory_image :
'abifeature annotated_memory_image ->
Nat_big_num.num ->
Byte_pattern.byte_pattern_element list ->
'abifeature annotated_memory_image
val mask_memory_image :
'a annotated_memory_image ->
Nat_big_num.num ->
Nat_big_num.num ->
'a annotated_memory_image
val memory_image_element_at :
'a annotated_memory_image ->
Nat_big_num.num ->
element option
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>