package bap-std

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

Architecture

type x86 = [
  1. | `x86
  2. | `x86_64
]
val bin_shape_x86 : Core_kernel.Bin_prot.Shape.t
val bin_size_x86 : x86 Core_kernel.Bin_prot.Size.sizer
val bin_write_x86 : x86 Core_kernel.Bin_prot.Write.writer
val bin_writer_x86 : x86 Core_kernel.Bin_prot.Type_class.writer
val bin_read_x86 : x86 Core_kernel.Bin_prot.Read.reader
val __bin_read_x86__ : (int -> x86) Core_kernel.Bin_prot.Read.reader
val bin_reader_x86 : x86 Core_kernel.Bin_prot.Type_class.reader
val bin_x86 : x86 Core_kernel.Bin_prot.Type_class.t
val compare_x86 : x86 -> x86 -> int
val all_of_x86 : x86 list
val sexp_of_x86 : x86 -> Ppx_sexp_conv_lib.Sexp.t
val x86_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> x86
val __x86_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> x86
type arm = [
  1. | `armv4
  2. | `armv5
  3. | `armv6
  4. | `armv7
]
val bin_shape_arm : Core_kernel.Bin_prot.Shape.t
val bin_size_arm : arm Core_kernel.Bin_prot.Size.sizer
val bin_write_arm : arm Core_kernel.Bin_prot.Write.writer
val bin_writer_arm : arm Core_kernel.Bin_prot.Type_class.writer
val bin_read_arm : arm Core_kernel.Bin_prot.Read.reader
val __bin_read_arm__ : (int -> arm) Core_kernel.Bin_prot.Read.reader
val bin_reader_arm : arm Core_kernel.Bin_prot.Type_class.reader
val bin_arm : arm Core_kernel.Bin_prot.Type_class.t
val compare_arm : arm -> arm -> int
val all_of_arm : arm list
val sexp_of_arm : arm -> Ppx_sexp_conv_lib.Sexp.t
val arm_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> arm
val __arm_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> arm
type armeb = [
  1. | `armv4eb
  2. | `armv5eb
  3. | `armv6eb
  4. | `armv7eb
]
val bin_shape_armeb : Core_kernel.Bin_prot.Shape.t
val bin_size_armeb : armeb Core_kernel.Bin_prot.Size.sizer
val bin_write_armeb : armeb Core_kernel.Bin_prot.Write.writer
val bin_writer_armeb : armeb Core_kernel.Bin_prot.Type_class.writer
val bin_read_armeb : armeb Core_kernel.Bin_prot.Read.reader
val __bin_read_armeb__ : (int -> armeb) Core_kernel.Bin_prot.Read.reader
val bin_reader_armeb : armeb Core_kernel.Bin_prot.Type_class.reader
val bin_armeb : armeb Core_kernel.Bin_prot.Type_class.t
val compare_armeb : armeb -> armeb -> int
val all_of_armeb : armeb list
val sexp_of_armeb : armeb -> Ppx_sexp_conv_lib.Sexp.t
val armeb_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> armeb
val __armeb_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> armeb
type thumb = [
  1. | `thumbv4
  2. | `thumbv5
  3. | `thumbv6
  4. | `thumbv7
]
val bin_shape_thumb : Core_kernel.Bin_prot.Shape.t
val bin_size_thumb : thumb Core_kernel.Bin_prot.Size.sizer
val bin_write_thumb : thumb Core_kernel.Bin_prot.Write.writer
val bin_writer_thumb : thumb Core_kernel.Bin_prot.Type_class.writer
val bin_read_thumb : thumb Core_kernel.Bin_prot.Read.reader
val __bin_read_thumb__ : (int -> thumb) Core_kernel.Bin_prot.Read.reader
val bin_reader_thumb : thumb Core_kernel.Bin_prot.Type_class.reader
val bin_thumb : thumb Core_kernel.Bin_prot.Type_class.t
val compare_thumb : thumb -> thumb -> int
val all_of_thumb : thumb list
val sexp_of_thumb : thumb -> Ppx_sexp_conv_lib.Sexp.t
val thumb_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> thumb
val __thumb_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> thumb
type thumbeb = [
  1. | `thumbv4eb
  2. | `thumbv5eb
  3. | `thumbv6eb
  4. | `thumbv7eb
]
val bin_shape_thumbeb : Core_kernel.Bin_prot.Shape.t
val bin_size_thumbeb : thumbeb Core_kernel.Bin_prot.Size.sizer
val bin_write_thumbeb : thumbeb Core_kernel.Bin_prot.Write.writer
val bin_writer_thumbeb : thumbeb Core_kernel.Bin_prot.Type_class.writer
val bin_read_thumbeb : thumbeb Core_kernel.Bin_prot.Read.reader
val __bin_read_thumbeb__ : (int -> thumbeb) Core_kernel.Bin_prot.Read.reader
val bin_reader_thumbeb : thumbeb Core_kernel.Bin_prot.Type_class.reader
val bin_thumbeb : thumbeb Core_kernel.Bin_prot.Type_class.t
val compare_thumbeb : thumbeb -> thumbeb -> int
val all_of_thumbeb : thumbeb list
val sexp_of_thumbeb : thumbeb -> Ppx_sexp_conv_lib.Sexp.t
val thumbeb_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> thumbeb
val __thumbeb_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> thumbeb
type aarch64 = [
  1. | `aarch64
  2. | `aarch64_be
]
val bin_shape_aarch64 : Core_kernel.Bin_prot.Shape.t
val bin_size_aarch64 : aarch64 Core_kernel.Bin_prot.Size.sizer
val bin_write_aarch64 : aarch64 Core_kernel.Bin_prot.Write.writer
val bin_writer_aarch64 : aarch64 Core_kernel.Bin_prot.Type_class.writer
val bin_read_aarch64 : aarch64 Core_kernel.Bin_prot.Read.reader
val __bin_read_aarch64__ : (int -> aarch64) Core_kernel.Bin_prot.Read.reader
val bin_reader_aarch64 : aarch64 Core_kernel.Bin_prot.Type_class.reader
val bin_aarch64 : aarch64 Core_kernel.Bin_prot.Type_class.t
val compare_aarch64 : aarch64 -> aarch64 -> int
val all_of_aarch64 : aarch64 list
val sexp_of_aarch64 : aarch64 -> Ppx_sexp_conv_lib.Sexp.t
val aarch64_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> aarch64
val __aarch64_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> aarch64
type ppc = [
  1. | `ppc
  2. | `ppc64
  3. | `ppc64le
]
val bin_shape_ppc : Core_kernel.Bin_prot.Shape.t
val bin_size_ppc : ppc Core_kernel.Bin_prot.Size.sizer
val bin_write_ppc : ppc Core_kernel.Bin_prot.Write.writer
val bin_writer_ppc : ppc Core_kernel.Bin_prot.Type_class.writer
val bin_read_ppc : ppc Core_kernel.Bin_prot.Read.reader
val __bin_read_ppc__ : (int -> ppc) Core_kernel.Bin_prot.Read.reader
val bin_reader_ppc : ppc Core_kernel.Bin_prot.Type_class.reader
val bin_ppc : ppc Core_kernel.Bin_prot.Type_class.t
val compare_ppc : ppc -> ppc -> int
val all_of_ppc : ppc list
val sexp_of_ppc : ppc -> Ppx_sexp_conv_lib.Sexp.t
val ppc_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> ppc
val __ppc_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> ppc
type mips = [
  1. | `mips
  2. | `mipsel
  3. | `mips64
  4. | `mips64el
]
val bin_shape_mips : Core_kernel.Bin_prot.Shape.t
val bin_size_mips : mips Core_kernel.Bin_prot.Size.sizer
val bin_write_mips : mips Core_kernel.Bin_prot.Write.writer
val bin_writer_mips : mips Core_kernel.Bin_prot.Type_class.writer
val bin_read_mips : mips Core_kernel.Bin_prot.Read.reader
val __bin_read_mips__ : (int -> mips) Core_kernel.Bin_prot.Read.reader
val bin_reader_mips : mips Core_kernel.Bin_prot.Type_class.reader
val bin_mips : mips Core_kernel.Bin_prot.Type_class.t
val compare_mips : mips -> mips -> int
val all_of_mips : mips list
val sexp_of_mips : mips -> Ppx_sexp_conv_lib.Sexp.t
val mips_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> mips
val __mips_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> mips
type sparc = [
  1. | `sparc
  2. | `sparcv9
]
val bin_shape_sparc : Core_kernel.Bin_prot.Shape.t
val bin_size_sparc : sparc Core_kernel.Bin_prot.Size.sizer
val bin_write_sparc : sparc Core_kernel.Bin_prot.Write.writer
val bin_writer_sparc : sparc Core_kernel.Bin_prot.Type_class.writer
val bin_read_sparc : sparc Core_kernel.Bin_prot.Read.reader
val __bin_read_sparc__ : (int -> sparc) Core_kernel.Bin_prot.Read.reader
val bin_reader_sparc : sparc Core_kernel.Bin_prot.Type_class.reader
val bin_sparc : sparc Core_kernel.Bin_prot.Type_class.t
val compare_sparc : sparc -> sparc -> int
val all_of_sparc : sparc list
val sexp_of_sparc : sparc -> Ppx_sexp_conv_lib.Sexp.t
val sparc_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> sparc
val __sparc_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> sparc
type nvptx = [
  1. | `nvptx
  2. | `nvptx64
]
val bin_shape_nvptx : Core_kernel.Bin_prot.Shape.t
val bin_size_nvptx : nvptx Core_kernel.Bin_prot.Size.sizer
val bin_write_nvptx : nvptx Core_kernel.Bin_prot.Write.writer
val bin_writer_nvptx : nvptx Core_kernel.Bin_prot.Type_class.writer
val bin_read_nvptx : nvptx Core_kernel.Bin_prot.Read.reader
val __bin_read_nvptx__ : (int -> nvptx) Core_kernel.Bin_prot.Read.reader
val bin_reader_nvptx : nvptx Core_kernel.Bin_prot.Type_class.reader
val bin_nvptx : nvptx Core_kernel.Bin_prot.Type_class.t
val compare_nvptx : nvptx -> nvptx -> int
val all_of_nvptx : nvptx list
val sexp_of_nvptx : nvptx -> Ppx_sexp_conv_lib.Sexp.t
val nvptx_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> nvptx
val __nvptx_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> nvptx
type hexagon = [
  1. | `hexagon
]
val bin_shape_hexagon : Core_kernel.Bin_prot.Shape.t
val bin_size_hexagon : hexagon Core_kernel.Bin_prot.Size.sizer
val bin_write_hexagon : hexagon Core_kernel.Bin_prot.Write.writer
val bin_writer_hexagon : hexagon Core_kernel.Bin_prot.Type_class.writer
val bin_read_hexagon : hexagon Core_kernel.Bin_prot.Read.reader
val __bin_read_hexagon__ : (int -> hexagon) Core_kernel.Bin_prot.Read.reader
val bin_reader_hexagon : hexagon Core_kernel.Bin_prot.Type_class.reader
val bin_hexagon : hexagon Core_kernel.Bin_prot.Type_class.t
val compare_hexagon : hexagon -> hexagon -> int
val all_of_hexagon : hexagon list
val sexp_of_hexagon : hexagon -> Ppx_sexp_conv_lib.Sexp.t
val hexagon_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> hexagon
val __hexagon_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> hexagon
type r600 = [
  1. | `r600
]
val bin_shape_r600 : Core_kernel.Bin_prot.Shape.t
val bin_size_r600 : r600 Core_kernel.Bin_prot.Size.sizer
val bin_write_r600 : r600 Core_kernel.Bin_prot.Write.writer
val bin_writer_r600 : r600 Core_kernel.Bin_prot.Type_class.writer
val bin_read_r600 : r600 Core_kernel.Bin_prot.Read.reader
val __bin_read_r600__ : (int -> r600) Core_kernel.Bin_prot.Read.reader
val bin_reader_r600 : r600 Core_kernel.Bin_prot.Type_class.reader
val bin_r600 : r600 Core_kernel.Bin_prot.Type_class.t
val compare_r600 : r600 -> r600 -> int
val all_of_r600 : r600 list
val sexp_of_r600 : r600 -> Ppx_sexp_conv_lib.Sexp.t
val r600_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> r600
val __r600_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> r600
type systemz = [
  1. | `systemz
]
val bin_shape_systemz : Core_kernel.Bin_prot.Shape.t
val bin_size_systemz : systemz Core_kernel.Bin_prot.Size.sizer
val bin_write_systemz : systemz Core_kernel.Bin_prot.Write.writer
val bin_writer_systemz : systemz Core_kernel.Bin_prot.Type_class.writer
val bin_read_systemz : systemz Core_kernel.Bin_prot.Read.reader
val __bin_read_systemz__ : (int -> systemz) Core_kernel.Bin_prot.Read.reader
val bin_reader_systemz : systemz Core_kernel.Bin_prot.Type_class.reader
val bin_systemz : systemz Core_kernel.Bin_prot.Type_class.t
val compare_systemz : systemz -> systemz -> int
val all_of_systemz : systemz list
val sexp_of_systemz : systemz -> Ppx_sexp_conv_lib.Sexp.t
val systemz_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> systemz
val __systemz_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> systemz
type xcore = [
  1. | `xcore
]
val bin_shape_xcore : Core_kernel.Bin_prot.Shape.t
val bin_size_xcore : xcore Core_kernel.Bin_prot.Size.sizer
val bin_write_xcore : xcore Core_kernel.Bin_prot.Write.writer
val bin_writer_xcore : xcore Core_kernel.Bin_prot.Type_class.writer
val bin_read_xcore : xcore Core_kernel.Bin_prot.Read.reader
val __bin_read_xcore__ : (int -> xcore) Core_kernel.Bin_prot.Read.reader
val bin_reader_xcore : xcore Core_kernel.Bin_prot.Type_class.reader
val bin_xcore : xcore Core_kernel.Bin_prot.Type_class.t
val compare_xcore : xcore -> xcore -> int
val all_of_xcore : xcore list
val sexp_of_xcore : xcore -> Ppx_sexp_conv_lib.Sexp.t
val xcore_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> xcore
val __xcore_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> xcore
type unknown = [
  1. | `unknown
]
val bin_shape_unknown : Core_kernel.Bin_prot.Shape.t
val bin_size_unknown : unknown Core_kernel.Bin_prot.Size.sizer
val bin_write_unknown : unknown Core_kernel.Bin_prot.Write.writer
val bin_writer_unknown : unknown Core_kernel.Bin_prot.Type_class.writer
val bin_read_unknown : unknown Core_kernel.Bin_prot.Read.reader
val __bin_read_unknown__ : (int -> unknown) Core_kernel.Bin_prot.Read.reader
val bin_reader_unknown : unknown Core_kernel.Bin_prot.Type_class.reader
val bin_unknown : unknown Core_kernel.Bin_prot.Type_class.t
val compare_unknown : unknown -> unknown -> int
val all_of_unknown : unknown list
val sexp_of_unknown : unknown -> Ppx_sexp_conv_lib.Sexp.t
val unknown_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> unknown
val __unknown_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> unknown
include Core_kernel.Bin_prot.Binable.S with type t := t
val all : t list
val __t_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> t
val of_string : string -> t option

of_string s will try to be clever and to capture all commonly known synonyms, e.g., of_string "i686" will work

val addr_size : t -> addr_size

addr_size arch returns an address size for a a given arch

val endian : t -> endian

endian arch returns a word endianness of the arch

val slot : (Bap_core_theory.Theory.program, t) Bap_knowledge.Knowledge.slot

the architecture (ISA) of a program.

val unit_slot : (Bap_core_theory.Theory.Unit.cls, t) Bap_knowledge.Knowledge.slot

unit_slot the arch property of the unit.

Use this slot to enable backward compatibility of the Arch.t type with the Theory.Target.t by registering a promise that translates Theory.Target.t to Arch.t.

Example,

let target = Theory.Target.declare ~package:"foo" "r600"
let () = KB.promise Arch.unit_slot @@ fun unit ->
  KB.collect Theory.Unit.target >>| fun t ->
  if Theory.Target.equal t target then `r600
  else `unknown

arch type implements Regular interface

include Regular.Std.Regular.S with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
val bin_shape_t : Bin_prot.Shape.t
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_t : t Bin_prot.Type_class.t
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t
val to_string : t -> string
val str : unit -> t -> string
val pps : unit -> t -> string
val ppo : Core_kernel.Out_channel.t -> t -> unit
val pp_seq : Stdlib.Format.formatter -> t Core_kernel.Sequence.t -> unit
val pp : Base__.Formatter.t -> t -> unit
val (>=) : t -> t -> bool
val (<=) : t -> t -> bool
val (=) : t -> t -> bool
val (>) : t -> t -> bool
val (<) : t -> t -> bool
val (<>) : t -> t -> bool
val equal : t -> t -> bool
val compare : t -> t -> int
val min : t -> t -> t
val max : t -> t -> t
val ascending : t -> t -> int
val descending : t -> t -> int
val between : t -> low:t -> high:t -> bool
val clamp_exn : t -> min:t -> max:t -> t
val clamp : t -> min:t -> max:t -> t Base__.Or_error.t
type comparator_witness
val validate_lbound : min:t Base__.Maybe_bound.t -> t Base__.Validate.check
val validate_ubound : max:t Base__.Maybe_bound.t -> t Base__.Validate.check
val validate_bound : min:t Base__.Maybe_bound.t -> max:t Base__.Maybe_bound.t -> t Base__.Validate.check
module Replace_polymorphic_compare : sig ... end
val comparator : (t, comparator_witness) Core_kernel__Comparator.comparator
module Map : sig ... end
module Set : sig ... end
val hash_fold_t : Ppx_hash_lib.Std.Hash.state -> t -> Ppx_hash_lib.Std.Hash.state
val hash : t -> Ppx_hash_lib.Std.Hash.hash_value
val hashable : t Core_kernel__.Hashtbl.Hashable.t
module Table : sig ... end
module Hash_set : sig ... end
module Hash_queue : sig ... end
type info = string * [ `Ver of string ] * string option
val version : string
val size_in_bytes : ?ver:string -> ?fmt:string -> t -> int
val of_bytes : ?ver:string -> ?fmt:string -> Regular.Std.bytes -> t
val to_bytes : ?ver:string -> ?fmt:string -> t -> Regular.Std.bytes
val blit_to_bytes : ?ver:string -> ?fmt:string -> Regular.Std.bytes -> t -> int -> unit
val of_bigstring : ?ver:string -> ?fmt:string -> Core_kernel.bigstring -> t
val to_bigstring : ?ver:string -> ?fmt:string -> t -> Core_kernel.bigstring
val blit_to_bigstring : ?ver:string -> ?fmt:string -> Core_kernel.bigstring -> t -> int -> unit
module Io : sig ... end
module Cache : sig ... end
val add_reader : ?desc:string -> ver:string -> string -> t Regular.Std.reader -> unit
val add_writer : ?desc:string -> ver:string -> string -> t Regular.Std.writer -> unit
val available_readers : unit -> info list
val default_reader : unit -> info
val set_default_reader : ?ver:string -> string -> unit
val with_reader : ?ver:string -> string -> (unit -> 'a) -> 'a
val available_writers : unit -> info list
val default_writer : unit -> info
val set_default_writer : ?ver:string -> string -> unit
val with_writer : ?ver:string -> string -> (unit -> 'a) -> 'a
val default_printer : unit -> info option
val set_default_printer : ?ver:string -> string -> unit
val with_printer : ?ver:string -> string -> (unit -> 'a) -> 'a
val find_reader : ?ver:string -> string -> t Regular.Std.reader option
val find_writer : ?ver:string -> string -> t Regular.Std.writer option
OCaml

Innovation. Community. Security.