package linksem
A formalisation of the core ELF and DWARF file formats written in Lem
Install
Dune Dependency
Authors
Maintainers
Sources
0.8.tar.gz
md5=2075c56715539b3b8f54ae65cc808b8c
sha512=f7c16e4036a1440a6a8d13707a43f0f9f9db0c68489215f948cc300b6a164dba5bf852e58f89503e9d9f38180ee658d9478156ca1a1ef64d6861eec5f9cf43d2
doc/src/linksem_zarith/abi_riscv_elf_header.ml.html
Source file abi_riscv_elf_header.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
(*Generated by Lem from abis/riscv/abi_riscv_elf_header.lem.*) (** [abi_riscv_elf_header] contains types and definitions relating to ABI * specific ELF header functionality for the RISCV ABI. *) open Lem_basic_classes open Lem_bool open Lem_list open Lem_num open Lem_maybe open Missing_pervasives open Elf_header open Elf_types_native_uint open Endianness (*val abi_riscv_data_encoding : natural*) let abi_riscv_data_encoding:Nat_big_num.num= elf_data_2lsb (*val abi_riscv_endianness : endianness*) let abi_riscv_endianness:endianness= Little (* Must match above *) (*val abi_riscv_file_class : natural*) let abi_riscv_file_class:Nat_big_num.num= elf_class_64 (*val abi_riscv_file_version : natural*) let abi_riscv_file_version:Nat_big_num.num= elf_ev_current (*val abi_riscv_page_size_min : natural*) let abi_riscv_page_size_min:Nat_big_num.num= ( (Nat_big_num.of_int 4096)) (*val abi_riscv_page_size_max : natural*) let abi_riscv_page_size_max:Nat_big_num.num= ( (Nat_big_num.of_int 65536)) (** [is_valid_abi_riscv_machine_architecture m] checks whether the ELF header's * machine architecture is valid according to the ABI-specific specification. *) (*val is_valid_abi_riscv_machine_architecture : natural -> bool*) let is_valid_abi_riscv_machine_architecture m:bool= (Nat_big_num.equal m elf_ma_riscv) (** [is_valid_abi_riscv_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_riscv_magic_number : list unsigned_char -> bool*) let is_valid_abi_riscv_magic_number magic:bool= ((match Lem_list.list_index magic (Nat_big_num.to_int elf_ii_class) with | None -> false | Some cls -> (match Lem_list.list_index magic (Nat_big_num.to_int elf_ii_data) with | None -> false | Some data -> ( Nat_big_num.equal(Uint32_wrapper.to_bigint cls) abi_riscv_file_class) && ( Nat_big_num.equal(Uint32_wrapper.to_bigint data) abi_riscv_data_encoding) ) ))
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>