package linksem
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
md5=2075c56715539b3b8f54ae65cc808b8c
    
    
  sha512=f7c16e4036a1440a6a8d13707a43f0f9f9db0c68489215f948cc300b6a164dba5bf852e58f89503e9d9f38180ee658d9478156ca1a1ef64d6861eec5f9cf43d2
    
    
  doc/linksem_zarith/Elf_interpreted_section/index.html
Module Elf_interpreted_sectionSource
Module elf_interpreted_section provides a record of "interpreted" sections, * i.e. the data stored in the section header table converted to more amenable * infinite precision types, and operation on those records.
type elf32_interpreted_section = {elf32_section_name : Nat_big_num.num;(*Name of the section
*)elf32_section_type : Nat_big_num.num;(*Type of the section
*)elf32_section_flags : Nat_big_num.num;(*Flags associated with the section
*)elf32_section_addr : Nat_big_num.num;(*Base address of the section in memory
*)elf32_section_offset : Nat_big_num.num;(*Offset from beginning of file
*)elf32_section_size : Nat_big_num.num;(*Section size in bytes
*)elf32_section_link : Nat_big_num.num;(*Section header table index link
*)elf32_section_info : Nat_big_num.num;(*Extra information, depends on section type
*)elf32_section_align : Nat_big_num.num;(*Alignment constraints for section
*)elf32_section_entsize : Nat_big_num.num;(*Size of each entry in table, if section is one
*)elf32_section_body : Byte_sequence.byte_sequence0;(*Body of section
*)elf32_section_name_as_string : string;(*Name of the section, as a string; "" for no name (name = 0)
*)
}elf32_interpreted_section exactly mirrors the structure of a section header * table entry, barring the conversion of all fields to more amenable types.
val elf32_interpreted_section_equal : 
  elf32_interpreted_section ->
  elf32_interpreted_section ->
  boolelf32_interpreted_section_equal s1 s2 is an equality test on interpreted * sections s1 and s2.
val instance_Basic_classes_Eq_Elf_interpreted_section_elf32_interpreted_section_dict : 
  elf32_interpreted_section Lem_basic_classes.eq_classtype elf64_interpreted_section = {elf64_section_name : Nat_big_num.num;(*Name of the section
*)elf64_section_type : Nat_big_num.num;(*Type of the section
*)elf64_section_flags : Nat_big_num.num;(*Flags associated with the section
*)elf64_section_addr : Nat_big_num.num;(*Base address of the section in memory
*)elf64_section_offset : Nat_big_num.num;(*Offset from beginning of file
*)elf64_section_size : Nat_big_num.num;(*Section size in bytes
*)elf64_section_link : Nat_big_num.num;(*Section header table index link
*)elf64_section_info : Nat_big_num.num;(*Extra information, depends on section type
*)elf64_section_align : Nat_big_num.num;(*Alignment constraints for section
*)elf64_section_entsize : Nat_big_num.num;(*Size of each entry in table, if section is one
*)elf64_section_body : Byte_sequence.byte_sequence0;(*Body of section
*)elf64_section_name_as_string : string;(*Name of the section, as a string; "" for no name (name = 0)
*)
}elf64_interpreted_section exactly mirrors the structure of a section header * table entry, barring the conversion of all fields to more amenable types.
val compare_elf64_interpreted_section : 
  elf64_interpreted_section ->
  elf64_interpreted_section ->
  intcompare_elf64_interpreted_section s1 s2 is an ordering comparison function * on interpreted sections suitable for use in sets, finite maps and other * ordered structures.
val instance_Basic_classes_Ord_Elf_interpreted_section_elf64_interpreted_section_dict : 
  elf64_interpreted_section Lem_basic_classes.ord_classval elf64_interpreted_section_equal : 
  elf64_interpreted_section ->
  elf64_interpreted_section ->
  boolelf64_interpreted_section_equal s1 s2 is an equality test on interpreted * sections s1 and s2.
null_elf32_interpreted_section --- the null interpreted section.
null_elf64_interpreted_section --- the null interpreted section.
val instance_Basic_classes_Eq_Elf_interpreted_section_elf64_interpreted_section_dict : 
  elf64_interpreted_section Lem_basic_classes.eq_classval elf64_interpreted_section_matches_section_header : 
  elf64_interpreted_section ->
  Elf_section_header_table.elf64_section_header_table_entry ->
  boolelf64_interpreted_section_matches_section_header sect ent checks whether * the interpreted section and the corresponding section header table entry * match.
string_of_elf32_interpreted_section sect returns a string-based representation * of interpreted section, sect.
string_of_elf64_interpreted_section sect returns a string-based representation * of interpreted section, sect.
val is_valid_elf32_section_header_table_entry : 
  elf32_interpreted_section ->
  String_table.string_table ->
  boolis_valid_elf32_section_header_table_entry sect stab checks whether a * interpreted section conforms with the prescribed flags and types declared * in the "special sections" table of the ELF specification. * TODO: some of these entries in the table are overridden by ABI supplements. * Make sure it is these that are passed in rather than the default table * declared in the spec?
val is_valid_elf64_section_header_table_entry : 
  elf64_interpreted_section ->
  String_table.string_table ->
  boolis_valid_elf64_section_header_table_entry sect stab checks whether a * interpreted section conforms with the prescribed flags and types declared * in the "special sections" table of the ELF specification. * TODO: some of these entries in the table are overridden by ABI supplements. * Make sure it is these that are passed in rather than the default table * declared in the spec?
val is_valid_elf32_section_header_table0 : 
  elf32_interpreted_section list ->
  String_table.string_table ->
  boolis_valid_elf32_section_header_table sects checks whether all entries in * sect are valid.
val is_valid_elf64_section_header_table0 : 
  elf64_interpreted_section list ->
  String_table.string_table ->
  boolis_valid_elf64_section_header_table sects checks whether all entries in * sect are valid.