1234567891011121314151617181920212223242526272829303132333435363738(*Generated by Lem from abis/amd64/abi_amd64_program_header_table.lem.*)(** [abi_amd64_program_header_table], program header table specific definitions
* for the AMD64 ABI.
*)openLem_basic_classesopenLem_boolopenLem_numopenLem_string(** New segment types. *)(** The segment contains the stack unwind tables *)letabi_amd64_pt_gnu_eh_frame:Nat_big_num.num=(Nat_big_num.mul((Nat_big_num.of_int2))((Nat_big_num.of_int842691240)))(* 0x6474e550 *)letabi_amd64_pt_sunw_eh_frame:Nat_big_num.num=(Nat_big_num.mul((Nat_big_num.of_int2))((Nat_big_num.of_int842691240)))(* 0x6474e550 *)letabi_amd64_pt_sunw_unwind:Nat_big_num.num=(Nat_big_num.mul((Nat_big_num.of_int2))((Nat_big_num.of_int842691240)))(* 0x6474e550 *)(** [string_of_abi_amd64_elf_segment_type m] produces a string based representation
* of AMD64 segment type [m].
*)(*val string_of_abi_amd64_elf_segment_type : natural -> string*)letstring_of_abi_amd64_elf_segment_typem:string=(ifNat_big_num.equalmabi_amd64_pt_gnu_eh_framethen"GNU_EH_FRAME"elseifNat_big_num.equalmabi_amd64_pt_sunw_eh_framethen"SUNW_EH_FRAME"elseifNat_big_num.equalmabi_amd64_pt_sunw_unwindthen"SUNW_UNWIND"else"Invalid AMD64 segment type")(** [abi_amd64_is_valid_program_interpreter s] checks whether the program interpreter
* string is valid for AMD64 ABI.
* See Section 5.2.1
*)(*val abi_amd64_is_valid_program_interpreter : string -> bool*)letabi_amd64_is_valid_program_interpreters:bool=((s="/lib/ld64.so.1")||(s="/lib64/ld-linux-x86-64.so.2"))