Module Qcow_block_cache.Make

Parameters

Signature

include Qcow_s.RESIZABLE_BLOCK
include Mirage_block.S
type error = private [>
| Mirage_device.error
]
val pp_error : error Fmt.t
type write_error = private [>
| `Disconnected
| `Is_read_only
| `Unimplemented
]
val pp_write_error : write_error Fmt.t
type t
val disconnect : t -> unit Lwt.t
val get_info : t -> Mirage_block.info Lwt.t
val read : t -> int64 -> Cstruct.t list -> (unit, error) Stdlib.result Lwt.t
val write : t -> int64 -> Cstruct.t list -> (unit, write_error) Stdlib.result Lwt.t
val resize : t -> int64 -> (unit, write_error) Result.result Lwt.t

Resize the file to the given number of sectors.

val flush : t -> (unit, write_error) Result.result Lwt.t

flush t flushes any buffers, if the file has been opened in buffered mode

val connect : ?⁠max_size_bytes:int64 -> B.t -> t Lwt.t

connect ?max_size_bytes b constructs a cache over b with a maximum memory footprint of max_size_bytes. Writes are heavily cached and only written to disk on a flush, disconnect or when out of space.