Restructure library for dealing with block mappings.
[virt-df.git] / lib / diskimage_utils.mli
index 07ad079..0a46197 100644 (file)
@@ -26,27 +26,31 @@ class virtual device :
   object
     method virtual name : string
     method virtual size : int64
-    method close : unit -> unit
-    method virtual read : int64 -> int -> string
+    method read : int64 -> int -> string
     method read_bitstring : int64 -> int -> Bitmatch.bitstring
+    method virtual blocksize : int
+    method virtual mapblock : int64 -> (device * int64) list
   end
 
-class block_device : string ->
+class block_device : string -> int ->
   object
     method name : string
     method size : int64
-    method close : unit -> unit
     method read : int64 -> int -> string
     method read_bitstring : int64 -> int -> Bitmatch.bitstring
+    method blocksize : int
+    method mapblock : int64 -> (device * int64) list
+    method close : unit -> unit
   end
 
-class offset_device : string -> int64 -> int64 -> device ->
+class offset_device : string -> int64 -> int64 -> int -> device ->
   object
     method name : string
     method size : int64
-    method close : unit -> unit
     method read : int64 -> int -> string
     method read_bitstring : int64 -> int -> Bitmatch.bitstring
+    method blocksize : int
+    method mapblock : int64 -> (device * int64) list
   end
 
 val null_device : device
@@ -60,7 +64,7 @@ type machine = {
 
 and disk = {
   d_name : string;
-  d_dev : device;
+  d_dev : block_device;
   d_content : disk_content;
 }