package bap-std
- Overview
 - No Docs
 
You can search for identifiers within the package.
in-package search v0.2.0
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=631fc58628418e4856709a0cfc923a65e00c9494fbd28d444c633d11194831de
    
    
  md5=3db9deac8d429b9b8a8ec9aec54987b1
    
    
  doc/bap/Bap/Std/Memmap/index.html
Module Std.Memmap
Memory maps. Memory map is an assosiative data structure that maps memory regions to values. Unlike in the Table, memory regions in the Memmap can intersect in an arbitrary ways. This data structure is also known as an Interval Tree.
Memmap is an instance of the Interval_tree with the Memory serving as an interval.
type 'a t = 'a memmapmemory map, aka interval trees
val sexp_of_t : 
  ('a -> Ppx_sexp_conv_lib.Sexp.t) ->
  'a t ->
  Ppx_sexp_conv_lib.Sexp.tval empty : 'a tempty map
add map mem tag adds a new memory region mem tagged with tag. If the same region was already in the map it will be tagged with the tag again, even if it has had the same tag.
dominators map mem an ordered sequence of all memory regions, containing mem. A memory region (x,y) contains region (p,q), iff p >= x && q <= y, where memory regions are depicted using closed intervals.
intersections map mem an ordered sequence of all memory regions, that intersects with mem. Memory region (x,y) intersects with region (p,q) iff there exists such z that
z >= p || z <= q && z >= x && z <= y.
In other words if there exists such byte that belongs to both memory regions.
intersects map mem is true if intersections map mem is not empty
contains map addr true if there exists such memory region mem, that Memory.contains mem addr
lookup map addr returns an ordered sequence of all memory containing the addr
map m f returns a new map with each tag mapped with function f
mapi m f the same as map, but f is called with two arguments: mem and tag, where mem is a memory region, and tag is a tag associated with that region.
filter map f returns a map that contains only those elements for which f evaluated to true
filter_map m f creates a new map by applying a function f to each tag. If f returns Some x then this region will be mapped to x in a new map, otherwise it will be dropped.
filter_mapi is like filter_map but use function also accepts would associated memory region
remove_intersections map mem removes all bindings that that intersects with mem
remove_dominators map mem removes all bindings that are dominators to mem
to_sequence map converts the memmap 'a t to a sequence of key-value pairs
include Core_kernel.Container.S1 with type 'a t := 'a t
val mem : 'a t -> 'a -> equal:('a -> 'a -> bool) -> boolval length : 'a t -> intval is_empty : 'a t -> boolval iter : 'a t -> f:('a -> unit) -> unitval fold : 'a t -> init:'accum -> f:('accum -> 'a -> 'accum) -> 'accumval fold_result : 
  'a t ->
  init:'accum ->
  f:('accum -> 'a -> ('accum, 'e) Base__.Result.t) ->
  ('accum, 'e) Base__.Result.tval fold_until : 
  'a t ->
  init:'accum ->
  f:('accum -> 'a -> ('accum, 'final) Base__.Container_intf.Continue_or_stop.t) ->
  finish:('accum -> 'final) ->
  'finalval exists : 'a t -> f:('a -> bool) -> boolval for_all : 'a t -> f:('a -> bool) -> boolval count : 'a t -> f:('a -> bool) -> intval sum : 
  (module Base__.Container_intf.Summable with type t = 'sum) ->
  'a t ->
  f:('a -> 'sum) ->
  'sumval find : 'a t -> f:('a -> bool) -> 'a optionval find_map : 'a t -> f:('a -> 'b option) -> 'b optionval to_list : 'a t -> 'a listval to_array : 'a t -> 'a arrayval min_elt : 'a t -> compare:('a -> 'a -> int) -> 'a optionval max_elt : 'a t -> compare:('a -> 'a -> int) -> 'a optionval pp : (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a t -> unitpp pp_elem constracts a printer for a memmap to the given element.