123456789101112131415161718192021222324252627282930313233343536373839404142434445464748(*Generated by Lem from abis/power64/abi_power64_elf_header.lem.*)(** [abi_power64_elf_header], Power64 ABI specific definitions related to the
* ELF file header.
*)openLem_basic_classesopenLem_boolopenLem_listopenLem_maybeopenMissing_pervasivesopenElf_headeropenElf_types_native_uintopenEndianness(** [is_valid_abi_power64_machine_architecture m] checks whether the ELF header's
* machine architecture is valid according to the ABI-specific specification.
* Machine architecture must be Power64 (Section 4.1).
*)(*val is_valid_abi_power64_machine_architecture : nat -> bool*)letis_valid_abi_power64_machine_architecturem:bool=(m=Nat_big_num.to_intelf_ma_ppc64)(** [is_valid_abi_power64_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 (Section 4.1)
* Data encoding must be little or big endian and must match the data encoding
* of the file. (Section 4.1)
*)(*val is_valid_abi_power64_magic_number : list unsigned_char -> endianness -> bool*)letis_valid_abi_power64_magic_numbermagicendian: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|Someed->(matchendianwith|Little->(Nat_big_num.equal(Uint32_wrapper.to_bigintcls)elf_class_64)&&(Nat_big_num.equal(Uint32_wrapper.to_biginted)elf_data_2lsb)|Big->(Nat_big_num.equal(Uint32_wrapper.to_bigintcls)elf_class_64)&&(Nat_big_num.equal(Uint32_wrapper.to_biginted)elf_data_2msb)))))