123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960(*Generated by Lem from abis/aarch64/abi_aarch64_le_elf_header.lem.*)(** [abi_aarch64_le_elf_header] contains types and definitions relating to ABI
* specific ELF header functionality for the AArch64 ABI (little-endian).
*)openLem_basic_classesopenLem_boolopenLem_listopenLem_numopenLem_maybeopenMissing_pervasivesopenElf_headeropenElf_types_native_uintopenEndianness(*val abi_aarch64_le_data_encoding : natural*)letabi_aarch64_le_data_encoding:Nat_big_num.num=elf_data_2lsb(*val abi_aarch64_le_endianness : endianness*)letabi_aarch64_le_endianness:endianness=Little(* Must match above *)(*val abi_aarch64_le_file_class : natural*)letabi_aarch64_le_file_class:Nat_big_num.num=elf_class_64(*val abi_aarch64_le_file_version : natural*)letabi_aarch64_le_file_version:Nat_big_num.num=elf_ev_current(*val abi_aarch64_le_page_size_min : natural*)letabi_aarch64_le_page_size_min:Nat_big_num.num=((Nat_big_num.of_int4096))(*val abi_aarch64_le_page_size_max : natural*)letabi_aarch64_le_page_size_max:Nat_big_num.num=((Nat_big_num.of_int65536))(** [is_valid_abi_aarch64_le_machine_architecture m] checks whether the ELF header's
* machine architecture is valid according to the ABI-specific specification.
* Machine architecture must be AArch64 (pg 60)
*)(*val is_valid_abi_aarch64_le_machine_architecture : natural -> bool*)letis_valid_abi_aarch64_le_machine_architecturem:bool=(Nat_big_num.equalmelf_ma_aarch64)(** [is_valid_abi_aarch64_le_magic_number magic] checks whether the ELF header's
* magic number is valid according to the ABI-specific specification.
* File class must be 64-bit (pg 60)
* Data encoding must be little endian (pg 60)
*)(*val is_valid_abi_aarch64_le_magic_number : list unsigned_char -> bool*)letis_valid_abi_aarch64_le_magic_numbermagic:bool=((matchLem_list.list_indexmagic(Nat_big_num.to_intelf_ii_class)with|None->false|Somecls->(matchLem_list.list_indexmagic(Nat_big_num.to_intelf_ii_data)with|None->false|Somedata->(Nat_big_num.equal(Uint32_wrapper.to_bigintcls)abi_aarch64_le_file_class)&&(Nat_big_num.equal(Uint32_wrapper.to_bigintdata)abi_aarch64_le_data_encoding))))