Use tables of callbacks for the functions.
[virt-df.git] / lib / diskimage_utils.mli
index 9eccf64..07179d8 100644 (file)
@@ -136,6 +136,24 @@ and parts_plugin_id = string
 and fs_plugin_id = string
 and lvm_plugin_id = string
 
+(** {2 Table of callbacks from each type of plug-in} *)
+
+type parts_cb = {
+  parts_cb_probe : device -> partitions;
+  parts_cb_offset_is_free : partitions -> Int63.t -> bool;
+}
+
+type fs_cb = {
+  fs_cb_probe : device -> filesystem;
+  fs_cb_offset_is_free : filesystem -> Int63.t -> bool;
+}
+
+type lvm_cb = {
+  lvm_cb_probe : lvm_plugin_id -> device -> pv;
+  lvm_cb_list_lvs : device list -> lv list;
+  lvm_cb_offset_is_free : pv -> Int63.t -> bool;
+}
+
 (** {2 Internal functions used by the plug-ins} *)
 
 val canonical_uuid : string -> string