package libsail

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Libsail.Sail_libSource

module Big_int = Nat_big_num
Sourcemodule type BitType = sig ... end
Sourcetype 'a return = {
  1. return : 'b. 'a -> 'b;
}
Sourcetype 'za zoption =
  1. | ZNone of unit
  2. | ZSome of 'za
Sourceval zint_forwards : Big_int.num -> string
Sourceval opt_trace : bool ref
Sourceval trace_depth : int ref
Sourceval random : bool ref
Sourceval opt_cycle_limit : int ref
Sourceval cycle_limit_reached : unit -> bool
Sourceval sail_call : ('t return -> 't) -> 't
Sourceval trace : string -> unit
Sourceval trace_write : string -> string -> unit
Sourceval trace_read : string -> string -> unit
Sourceval sail_trace_call : string -> string -> ('t -> string) -> ('t return -> 't) -> 't
Sourceval trace_call : string -> unit
Sourcetype bit =
  1. | B0
  2. | B1
Sourceval eq_anything : ('a * 'a) -> bool
Sourceval eq_bit : ('a * 'a) -> bool
Sourceval and_bit : (bit * bit) -> bit
Sourceval or_bit : (bit * bit) -> bit
Sourceval xor_bit : (bit * bit) -> bit
Sourceval and_vec : (bit list * bit list) -> bit list
Sourceval and_bool : (bool * bool) -> bool
Sourceval or_vec : (bit list * bit list) -> bit list
Sourceval or_bool : (bool * bool) -> bool
Sourceval xor_vec : (bit list * bit list) -> bit list
Sourceval xor_bool : (bool * bool) -> bool
Sourceval undefined_bit : unit -> bit
Sourceval undefined_bool : unit -> bool
Sourceval undefined_vector : (Big_int.num * 'a) -> 'a list
Sourceval undefined_list : 'a -> 'b list
Sourceval undefined_bitvector : Big_int.num -> bit list
Sourceval undefined_string : unit -> string
Sourceval undefined_unit : unit -> unit
Sourceval undefined_int : unit -> Big_int.num
Sourceval undefined_nat : unit -> Big_int.num
Sourceval undefined_range : ('a * 'b) -> 'a
Sourceval internal_pick : 'a list -> 'a
Sourceval eq_int : (Big_int.num * Big_int.num) -> bool
Sourceval eq_bool : (bool * bool) -> bool
Sourceval drop : int -> 'a list -> 'a list
Sourceval take : int -> 'a list -> 'a list
Sourceval count_leading_zeros : bit list -> Big_int.num
Sourceval subrange : ('a list * Big_int.num * Big_int.num) -> 'a list
Sourceval slice : ('a list * Big_int.num * Big_int.num) -> 'a list
Sourceval eq_list : ('a list * 'a list) -> bool
Sourceval access : ('a list * Big_int.num) -> 'a
Sourceval append : ('a list * 'a list) -> 'a list
Sourceval update : ('a list * Big_int.num * 'a) -> 'a list
Sourceval update_subrange : ('a list * Big_int.num * 'b * 'a list) -> 'a list
Sourceval vector_truncate : ('a list * Big_int.num) -> 'a list
Sourceval vector_truncateLSB : ('a list * Big_int.num) -> 'a list
Sourceval length : 'a list -> Big_int.num
Sourceval big_int_of_bit : bit -> Big_int.num
Sourceval uint : bit list -> Big_int.num
Sourceval sint : bit list -> Big_int.num
Sourceval add_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval sub_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval sub_nat : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval mult : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval quotient : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval quot_round_zero : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval rem_round_zero : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval modulus : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval negate : Big_int.num -> Big_int.num
Sourceval tdiv_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval tmod_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval add_bit_with_carry : (bit * bit * bit) -> bit * bit
Sourceval sub_bit_with_carry : (bit * bit * bit) -> bit * bit
Sourceval not_bit : bit -> bit
Sourceval not_vec : bit list -> bit list
Sourceval add_vec_carry : (bit list * bit list) -> bit * bit list
Sourceval add_vec : (bit list * bit list) -> bit list
Sourceval replicate_bits : ('a list * Big_int.num) -> 'a list
Sourceval identity : 'a -> 'a
Sourceval get_slice_int' : (int * Big_int.num * int) -> bit list
Sourceval get_slice_int : (Big_int.num * Big_int.num * Big_int.num) -> bit list
Sourceval to_bits' : (int * Big_int.num) -> bit list
Sourceval to_bits : (Big_int.num * Big_int.num) -> bit list
Sourceval mult_vec : (bit list * bit list) -> bit list
Sourceval mults_vec : (bit list * bit list) -> bit list
Sourceval add_vec_int : (bit list * Big_int.num) -> bit list
Sourceval sub_vec : (bit list * bit list) -> bit list
Sourceval sub_vec_int : (bit list * Big_int.num) -> bit list
Sourceval bin_char : char -> bit
Sourceval hex_char : char -> bit list
Sourceval list_of_string : string -> char list
Sourceval bits_of_string : string -> bit list
Sourceval concat_str : (string * string) -> string
Sourceval break : int -> 'a list -> 'a list list
Sourceval string_of_bit : bit -> string
Sourceval char_of_bit : bit -> char
Sourceval int_of_bit : bit -> int
Sourceval bool_of_bit : bit -> bool
Sourceval bit_of_bool : bool -> bit
Sourceval bigint_of_bit : bit -> Big_int.num
Sourceval string_of_hex : bit list -> string
Sourceval string_of_bits : bit list -> string
Sourceval decimal_string_of_bits : bit list -> string
Sourceval hex_slice : (string * Big_int.num * Big_int.num) -> bit list
Sourceval putchar : Big_int.num -> unit
Sourceval bits_of_int : int -> int -> bit list
Sourceval bits_of_big_int : int -> Big_int.num -> bit list
Sourceval byte_of_int : int -> bit list
Sourcemodule Mem : sig ... end
Sourceval mem_pages : Bytes.t Mem.t ref
Sourceval page_shift_bits : int
Sourceval page_size_bytes : int
Sourceval page_no_of_addr : Big_int.num -> Big_int.num
Sourceval bottom_addr_of_page : Big_int.num -> Big_int.num
Sourceval top_addr_of_page : Big_int.num -> Big_int.num
Sourceval get_mem_page : Mem.key -> Bytes.t
Sourceval add_mem_bytes : Big_int.num -> bytes -> int -> int -> unit
Sourceval read_mem_bytes : Big_int.num -> int -> bytes
Sourceval write_ram' : (Big_int.num * Big_int.num * bit list) -> unit
Sourceval write_ram : ('a * Big_int.num * 'b * bit list * bit list) -> bool
Sourceval wram : Big_int.num -> int -> unit
Sourceval read_ram : ('a * Big_int.num * 'b * bit list) -> bit list
Sourceval fast_read_ram : (Big_int.num * bit list) -> bit list
Sourceval tag_ram : bool Mem.t ref
Sourceval write_tag_bool : (bit list * bool) -> unit
Sourceval read_tag_bool : bit list -> bool
Sourceval reverse_endianness : 'a list -> 'a list
Sourceval zcast_unit_vec : 'a -> 'a list
Sourceval shl_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval shr_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval lor_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval land_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval lxor_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval debug : (string * Big_int.num * string * bit list) -> unit
Sourceval eq_string : (String.t * String.t) -> bool
Sourceval string_startswith : (string * String.t) -> bool
Sourceval string_drop : (string * Big_int.num) -> string
Sourceval string_take : (string * Big_int.num) -> string
Sourceval string_length : string -> Big_int.num
Sourceval string_append : (string * string) -> string
Sourceval int_of_string_opt : string -> Big_int.num option
Sourceval maybe_int_of_prefix : string -> (Big_int.num * Big_int.num) zoption
Sourceval maybe_int_of_string : string -> Big_int.num zoption
Sourceval lt_int : (Big_int.num * Big_int.num) -> bool
Sourceval set_slice : (Big_int.num * 'a * 'b list * Big_int.num * 'b list) -> 'b list
Sourceval set_slice_int : (Big_int.num * Big_int.num * Big_int.num * bit list) -> Big_int.num
Sourceval eq_real : (Rational.t * Rational.t) -> bool
Sourceval lt_real : (Rational.t * Rational.t) -> bool
Sourceval gt_real : (Rational.t * Rational.t) -> bool
Sourceval lteq_real : (Rational.t * Rational.t) -> bool
Sourceval gteq_real : (Rational.t * Rational.t) -> bool
Sourceval to_real : Big_int.num -> Rational.t
Sourceval negate_real : Rational.t -> Rational.t
Sourceval neg_real : Rational.t -> Rational.t
Sourceval string_of_real : Rational.t -> string
Sourceval print_real : (string * Rational.t) -> unit
Sourceval prerr_real : (string * Rational.t) -> unit
Sourceval round_down : Rational.t -> Big_int_impl.BI.big_int
Sourceval round_up : Rational.t -> Big_int_impl.BI.big_int
Sourceval quotient_real : (Rational.t * Rational.t) -> Rational.t
Sourceval div_real : (Rational.t * Rational.t) -> Rational.t
Sourceval mult_real : (Rational.t * Rational.t) -> Rational.t
Sourceval real_power : ('a * 'b) -> 'c
Sourceval int_power : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval add_real : (Rational.t * Rational.t) -> Rational.t
Sourceval sub_real : (Rational.t * Rational.t) -> Rational.t
Sourceval abs_real : Rational.t -> Rational.t
Sourceval sqrt_real : Rational.t -> Rational.t
Sourceval random_real : unit -> Rational.t
Sourceval lt : (Big_int.num * Big_int.num) -> bool
Sourceval gt : (Big_int.num * Big_int.num) -> bool
Sourceval lteq : (Big_int.num * Big_int.num) -> bool
Sourceval gteq : (Big_int.num * Big_int.num) -> bool
Sourceval pow2 : Big_int.num -> Big_int.num
Sourceval max_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval min_int : (Big_int.num * Big_int.num) -> Big_int.num
Sourceval abs_int : Big_int.num -> Big_int.num
Sourceval string_of_int : Big_int.num -> string
Sourceval undefined_real : unit -> Rational.t
Sourceval pow : int -> int -> int
Sourceval real_of_string : string -> Rational.t
Sourceval print : string -> unit
Sourceval prerr : string -> unit
Sourceval print_int : (string * Big_int.num) -> unit
Sourceval prerr_int : (string * Big_int.num) -> unit
Sourceval print_bits : (string * bit list) -> unit
Sourceval prerr_bits : (string * bit list) -> unit
Sourceval print_string : (string * string) -> unit
Sourceval prerr_string : (string * string) -> unit
Sourceval reg_deref : 'a ref -> 'a
Sourceval string_of_zbit : bit -> string
Sourceval string_of_znat : Big_int.num -> string
Sourceval string_of_zint : Big_int.num -> string
Sourceval string_of_zimplicit : Big_int.num -> string
Sourceval string_of_zunit : unit -> string
Sourceval string_of_zbool : bool -> string
Sourceval string_of_zreal : 'a -> string
Sourceval string_of_zstring : string -> string
Sourceval string_of_list : string -> ('a -> string) -> 'a list -> string
Sourceval skip : unit -> unit
Sourceval memea : ('a * 'b) -> unit
Sourceval zero_extend : (bit list * Big_int.num) -> bit list
Sourceval sign_extend : (bit list * Big_int.num) -> bit list
Sourceval zeros : Big_int.num -> bit list
Sourceval ones : Big_int.num -> bit list
Sourceval shift_bits_right_arith : ('a list * bit list) -> 'a list
Sourceval shiftr : (bit list * Big_int.num) -> bit list
Sourceval arith_shiftr : ('a list * Big_int.num) -> 'a list
Sourceval shift_bits_right : (bit list * bit list) -> bit list
Sourceval shiftl : (bit list * Big_int.num) -> bit list
Sourceval shift_bits_left : (bit list * bit list) -> bit list
Sourceval speculate_conditional_success : unit -> bool
Sourceval get_time_ns : unit -> Big_int.num
Sourceval hex_bits_1_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_2_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_3_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_4_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_5_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_6_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_7_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_8_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_9_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_10_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_11_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_12_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_13_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_14_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_15_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_16_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_17_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_18_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_19_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_20_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_21_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_22_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_23_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_24_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_25_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_26_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_27_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_28_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_29_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_30_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_31_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_32_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_33_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_48_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval hex_bits_64_matches_prefix : string -> (bit list * Big_int.num) zoption
Sourceval string_of_bool : bool -> string
Sourceval dec_str : Big_int.num -> string
Sourceval hex_str : Big_int.num -> string
Sourceval trace_memory_write : ('a * 'b * 'c) -> unit
Sourceval trace_memory_read : ('a * 'b * 'c) -> unit
Sourceval sleep_request : unit -> unit
Sourceval wakeup_request : unit -> unit
Sourceval reset_registers : unit -> unit
Sourceval load_raw : (bit list * string) -> unit
Sourceval cycle_count : unit -> unit
Sourceval rand_zvector : 'generators -> int -> bool -> ('generators -> 'a) -> 'a list
Sourceval rand_zbit : 'generators -> bit
Sourceval rand_zbitvector : 'generators -> int -> bool -> bit list
Sourceval rand_zbool : 'generators -> bool
Sourceval rand_zunit : 'generators -> unit
Sourceval rand_choice : 'a list -> 'a
OCaml

Innovation. Community. Security.