Library
Module
Module type
Parameter
Class
Class type
Block device on top of Lwt_unix
include Mirage_block_lwt.S
val pp_error : error Fmt.t
val pp_write_error : write_error Fmt.t
val read :
t ->
int64 ->
page_aligned_buffer list ->
(unit, error) Stdlib.result io
val write :
t ->
int64 ->
page_aligned_buffer list ->
(unit, write_error) Stdlib.result io
low-level convenience functions
val blkgetsize : string -> Unix.file_descr -> (int64, error) Stdlib.result
blkgetsize path fd
: returns the size of the open block device given by fd
. path
is only used to construct a human-readable error message.
ftruncate fd size
: changes the size of the file backed by fd
to size
. This function works on Unix and Windows.
module Config : sig ... end
val connect :
?buffered:bool ->
?sync:Config.sync_behaviour option ->
?lock:bool ->
string ->
t io
connect ?buffered ?sync ?lock path
connects to a block device on the filesystem at path
. By default I/O is buffered and asynchronous. By default the file is unlocked. These defaults can be changed by supplying the optional arguments ~buffered:false
and ~sync:false
~lock:true
val resize : t -> int64 -> (unit, write_error) Stdlib.result io
resize t new_size_sectors
attempts to resize the connected device to have the given number of sectors. If successful, subsequent calls to get_info
will reflect the new size.
val flush : t -> (unit, write_error) Stdlib.result io
flush t
flushes any buffers, if the file has been opened in buffered mode
seek_unmapped t start
returns the sector offset of the next guaranteed zero-filled region (typically guaranteed because it is unmapped)
seek_mapped t start
returns the sector offset of the next regoin of the device which may have data in it (typically this is the next mapped region)
val discard : t -> int64 -> int64 -> (unit, write_error) Stdlib.result io
discard sector n
signals that the n
sectors starting at sector
are no longer needed and the contents may be discarded. Note the contents may not actually be deleted: this is not a "secure erase".