Library
Module
Module type
Parameter
Class
Class type
module B : Mirage_block.S
include Mirage_block.S
with type error := error
and type write_error := write_error
val pp_write_error : write_error Fmt.t
pp_write_error
is the pretty-printer for write errors.
val disconnect : t -> unit Lwt.t
Disconnect from the device. While this might take some time to complete, it can never result in an error.
val get_info : t -> Mirage_block.info Lwt.t
Query the characteristics of a specific block device
read device sector_start buffers
reads data starting at sector_start
from the block device into buffers
. Ok ()
means the buffers have been filled. Error _
indicates an I/O error has happened and some of the buffers may not be filled. Each of elements in the list buffers
must be a whole number of sectors in length. The list of buffers can be of any length. Some implementations may further require that each element in buffers
is exactly sector_size
long.
val write :
t ->
int64 ->
Cstruct.t list ->
(unit, write_error) Stdlib.result Lwt.t
write device sector_start buffers
writes data from buffers
onto the block device starting at sector_start
. Ok ()
means the contents of the buffers have been written. Error _
indicates a partial failure in which some of the writes may not have happened.
Once submitted, it is not possible to cancel a request and there is no timeout.
The operation may fail with: `Is_read_only
: the device is read-only, no data has been written.
Each of buffers
must be a whole number of sectors in length. The list of buffers can be of any length. Some implementations may further require that each element in buffers
is exactly sector_size
long.
The data will not be copied, so the supplied buffers must not be re-used until the IO operation completes.