mirage-block-combinators

Block signatures and implementations for MirageOS using Lwt
IN THIS PACKAGE

Sparse copy bytes between blocks

This functor use seeks operation to perform fast sparse copy between blocks.

Parameters

module A : SEEKABLE
module B : Mirage_block.S

Signature

type error#row

The type for copy errors.

and error = private [>
| `Is_read_only
| `Different_sizes
]

The type for copy errors.

val pp_error : error Fmt.t

pp_error is the pretty-printer for errors.

val v : src:A.t -> dst:B.t -> ( unit, error ) result Lwt.t

Copy all mapped data from a source SEEKABLE device to a destination BLOCK device.

This function will preserve sparseness information in the source disk. The destination block device must be pre-zeroed, otherwise previous data will "leak through".

Fails with `Different_sizes if the source and destination are not exactly the same size.

Fails with `Is_read_only if the destination device is read-only.