X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fdiskimage.mli;h=fab0bb9874d6f24672153791b3a30948821849f8;hb=15ea8d7da6be553a1a21611df57466144c56f129;hp=5d2a420561898fba39205ad79936e865ffdd842b;hpb=264faa6f381b1972327f830e3fca5ddd5881ff92;p=virt-df.git diff --git a/lib/diskimage.mli b/lib/diskimage.mli index 5d2a420..fab0bb9 100644 --- a/lib/diskimage.mli +++ b/lib/diskimage.mli @@ -202,7 +202,7 @@ and disk_content = ] and partitions = { - parts_plugin_id : parts_plugin_id; (** Partitioning scheme. *) + parts_cb : partitioner_callbacks; (** Partitioning scheme. *) parts_dev : device; (** Partitions (whole) device. *) parts : partition list; (** Partitions. *) } @@ -222,7 +222,7 @@ and partition_content = ] and filesystem = { - fs_plugin_id : fs_plugin_id; (** Filesystem type. *) + fs_cb : filesystem_callbacks; (** Filesystem type. *) fs_dev : device; (** Device containing the filesystem. *) fs_blocksize : Int63.t; (** Block size (bytes). *) fs_blocks_total : Int63.t; (** Total blocks. *) @@ -238,7 +238,7 @@ and filesystem = { (** A filesystem, with superblock contents. *) and pv = { - lvm_plugin_id : lvm_plugin_id; (** The LVM plug-in which detected + pv_cb : lvm_callbacks; (** The LVM plug-in which detected this. *) pv_dev : device; (** Device covering whole PV. *) pv_uuid : string; (** UUID. *) @@ -248,18 +248,17 @@ and lv = { } (** Physical and logical volumes as used by LVM plug-ins. *) -and parts_plugin_id -and fs_plugin_id -and lvm_plugin_id - (** Opaque IDs used to refer to the plug-ins. *) - -val name_of_parts : parts_plugin_id -> string -val name_of_filesystem : fs_plugin_id -> string -val name_of_lvm : lvm_plugin_id -> string - (** Convert plug-in IDs to printable strings. *) +and partitioner_callbacks +and filesystem_callbacks +and lvm_callbacks (** {2 Functions} *) +val name_of_filesystem : filesystem -> string + (** [name_of_filesystem fs] returns a printable name for + the filesystem. + *) + (** {3 Create 'machine'} *) val open_machine : string -> (string * string) list -> machine @@ -275,6 +274,11 @@ val open_machine : string -> (string * string) list -> machine LV filesystems in the returned structure. *) +val open_machine_from_devices : string -> (string * block_device) list -> + machine + (** This is the same as {!open_machine} except that instead + of passing a path you should pass a {!block_device} object. *) + val close_machine : machine -> unit (** This is a convenience function which calls the [dev#close] method on any open {!block_device}s owned by the machine. This just @@ -333,6 +337,15 @@ val get_owners_lookup : machine -> ownership -> block_device -> creates a tree structure which allows ownership to be determined in just a few steps. *) +val offset_is_free : (owner * Int63.t) list -> bool + (** [offset_is_free owners] tests if the offset is free (unused). + + If an offset is free, then it may be discarded without + changing the semantics of the disk image. In normal cases + this extends to the end of the current block, but blocksize + will differ for each owner, so what this really means is + tricky in practice. *) + (** {2 Debugging} *) val debug : bool ref