Completed reimplementation of faster Virt_mem_mmap.
[virt-mem.git] / lib / virt_mem_mmap.mli
index bdca7c5..50650b4 100644 (file)
 
     Mappings are stored in a segment tree for efficient access, but
     the segment tree has to be rebuilt from scratch each time you add
-    a new mapping (it is not known if there is a more efficient way to
-    incrementally update a segment tree).
+    a new mapping.  It is not known if there is a more efficient way
+    to incrementally update a segment tree.  In any case, as long as
+    you are mainly doing lookups / searches / getting bytes, this is
+    very fast.
 *)
 
 (** {2 Types} *)
@@ -131,7 +133,6 @@ val get_wordsize : ([`Wordsize], 'e, 'hm) t -> Virt_mem_utils.wordsize
 val get_endian : ('ws, [`Endian], 'hm) t -> Bitstring.endian
 (** Return the endianness previously set for this memory map. *)
 
-(*
 (** {2 Searching} *)
 
 val find : ('ws, 'e, [`HasMapping]) t -> ?start:addr -> string -> addr option
@@ -171,7 +172,6 @@ val find_pointer_all : ([`Wordsize], [`Endian], [`HasMapping]) t ->
 (** Find all occurrences of a pointer in the memory map. *)
 
 (** {2 Get bytes and ranges of bytes} *)
-*)
 
 val get_byte : ('ws, 'e, [`HasMapping]) t -> addr -> int
 (** Return the byte at the given address.
@@ -179,7 +179,6 @@ val get_byte : ('ws, 'e, [`HasMapping]) t -> addr -> int
     This will raise [Invalid_argument "get_byte"] if the address is
     a hole (not mapped). *)
 
-(*
 val get_bytes : ('ws, 'e, [`HasMapping]) t -> addr -> int -> string
 (** Return the sequence of bytes starting at the given address.
 
@@ -242,4 +241,3 @@ val align : ([`Wordsize], 'e, [`HasMapping]) t -> addr -> addr
 (*val from_channel : in_channel -> ('?, '?, [`HasMapping]) t*)
 (** Read a previously saved memory map.  If the input channel does
     not contain a memory map, this raises [Invalid_argument]. *)
-*)