package qcow

  1. Overview
  2. Docs
type t

Qcow metadata: clusters containing references and clusters containing reference counts.

type error = [
  1. | Mirage_block.error
  2. | `Msg of string
]
type write_error = [
  1. | Mirage_block.write_error
  2. | `Msg of string
]
val make : cache:Qcow_cache.t -> cluster_bits:int -> locks:Qcow_locks.t -> unit -> t

Construct a qcow metadata structure given a set of cluster read/write/flush operations

val set_cluster_map : t -> Qcow_cluster_map.t -> unit

Set the associated cluster map (which will be updated on every cluster write)

type contents
module Refcounts : sig ... end
module Physical : sig ... end
val erase : contents -> unit

Set the cluster contents to zeroes

val read_and_lock : ?client:Qcow_locks.Client.t -> t -> Qcow_types.Cluster.t -> (contents * Qcow_locks.lock, error) Stdlib.result Lwt.t
val read : ?client:Qcow_locks.Client.t -> t -> Qcow_types.Cluster.t -> (contents -> ('a, error) Stdlib.result Lwt.t) -> ('a, error) Stdlib.result Lwt.t

Read the contents of the given cluster and provide them to the given function

val update : ?client:Qcow_locks.Client.t -> t -> Qcow_types.Cluster.t -> (contents -> ('a, write_error) Stdlib.result Lwt.t) -> ('a, write_error) Stdlib.result Lwt.t

Read the contents of the given cluster, transform them through the given function and write the results back to disk

OCaml

Innovation. Community. Security.