initializing certain parts of the memory map. If you are not
familiar with phantom types, you can just ignore them.
- See also:
- [http://camltastic.blogspot.com/2008/05/phantom-types.html] *)
+ See also
+ {{:http://camltastic.blogspot.com/2008/05/phantom-types.html}this
+ posting about the phantom types used in virt-mem}.
+
+ The memory map structure is an example of a
+ {{:http://en.wikipedia.org/wiki/Purely_functional}persistent
+ data structure}.
+*)
type addr = int64
(** Virtual memory addresses (even on 32 bit machines). *)
(** Return true or false if the address contains a NUL-terminated
C identifier. *)
-val is_mapped : ('ws, 'e, [`HasMapping]) t -> addr -> bool
+val is_mapped : ('ws, 'e, 'hm) t -> addr -> bool
(** Return true if the single address [addr] is mapped. *)
+val is_mapped_range : ('ws, 'e, 'hm) t -> addr -> int -> bool
+(** Return true if all addresses in the range [addr] to [addr+size-1]
+ are mapped. *)
+
val follow_pointer : ([`Wordsize], [`Endian], [`HasMapping]) t -> addr -> addr
(** Follow (dereference) the pointer at [addr] and return
the address pointed to. *)