package binsec

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type size = int
type 'a interval = 'a Interval.t = {
  1. lo : 'a;
  2. hi : 'a;
}
type endianness = Machine.endianness =
  1. | LittleEndian
  2. | BigEndian
type unary =
  1. | U
and binary =
  1. | B
type _ operator =
  1. | Not : unary operator
  2. | Sext : size -> unary operator
  3. | Uext : size -> unary operator
  4. | Restrict : int interval -> unary operator
  5. | Plus : binary operator
  6. | Minus : _ operator
  7. | Mul : binary operator
  8. | Udiv : binary operator
  9. | Umod : binary operator
  10. | Sdiv : binary operator
  11. | Smod : binary operator
  12. | Or : binary operator
  13. | And : binary operator
  14. | Xor : binary operator
  15. | Concat : binary operator
  16. | Lsl : binary operator
  17. | Lsr : binary operator
  18. | Asr : binary operator
  19. | Rol : binary operator
  20. | Ror : binary operator
  21. | Eq : binary operator
  22. | Diff : binary operator
  23. | Ule : binary operator
  24. | Ult : binary operator
  25. | Uge : binary operator
  26. | Ugt : binary operator
  27. | Sle : binary operator
  28. | Slt : binary operator
  29. | Sge : binary operator
  30. | Sgt : binary operator
val pp_op : Stdlib.Format.formatter -> _ operator -> unit
module Bv : sig ... end
type (_, 'a, 'b) t = private
  1. | Var : {
    1. hash : int;
    2. size : size;
    3. name : string;
    4. label : 'a;
    } -> ([< `Var | `Loc | `Exp ], 'a, _) t
  2. | Load : {
    1. hash : int;
    2. len : size;
    3. dir : endianness;
    4. addr : ([ `Exp ], 'a, 'b) t;
    5. label : 'b;
    } -> ([< `Mem | `Loc | `Exp ], 'a, 'b) t
  3. | Cst : Bitvector.t -> ([< `Cst | `Exp ], _, _) t
  4. | Unary : {
    1. hash : int;
    2. size : size;
    3. f : unary operator;
    4. x : ([ `Exp ], 'a, 'b) t;
    } -> ([ `Exp ], 'a, 'b) t
  5. | Binary : {
    1. hash : int;
    2. size : size;
    3. f : binary operator;
    4. x : ([ `Exp ], 'a, 'b) t;
    5. y : ([ `Exp ], 'a, 'b) t;
    } -> ([ `Exp ], 'a, 'b) t
  6. | Ite : {
    1. hash : int;
    2. size : size;
    3. c : ([ `Exp ], 'a, 'b) t;
    4. t : ([ `Exp ], 'a, 'b) t;
    5. e : ([ `Exp ], 'a, 'b) t;
    } -> ([ `Exp ], 'a, 'b) t
module type S = sig ... end
module Make (A : Sigs.HASHABLE) (B : Sigs.HASHABLE) : S with type a := A.t and type b := B.t
val sizeof : (_, _, _) t -> int
val to_exp : (_, 'a, 'b) t -> ([ `Exp ], 'a, 'b) t

Conversion

*

val to_var : (_, 'a, 'b) t -> ([ `Var ], 'a, 'b) t option
val to_var_exn : (_, 'a, 'b) t -> ([ `Var ], 'a, 'b) t
val to_loc : (_, 'a, 'b) t -> ([ `Loc ], 'a, 'b) t option
val to_loc_exn : (_, 'a, 'b) t -> ([ `Loc ], 'a, 'b) t
val to_mem : (_, 'a, 'b) t -> ([ `Mem ], 'a, 'b) t option
val to_mem_exn : (_, 'a, 'b) t -> ([ `Mem ], 'a, 'b) t
val to_cst : (_, _, _) t -> ([ `Cst ], _, _) t option
val to_cst_exn : (_, _, _) t -> ([ `Cst ], _, _) t
val pp : Stdlib.Format.formatter -> (_, _, _) t -> unit

Debug

*

OCaml

Innovation. Community. Security.