Page
Library
Module
Module type
Parameter
Class
Class type
Source
BlockSourceBlock device on top of Lwt_unix
include Mirage_block.SThe type for block errors.
The type for write errors.
pp_write_error is the pretty-printer for write errors.
The type representing the internal state of the block device
Disconnect from the device. While this might take some time to complete, it can never result in an error.
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.
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.
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.
val connect :
?buffered:bool ->
?sync:Config.sync_behaviour option ->
?lock:bool ->
?prefered_sector_size:int option ->
string ->
t Lwt.tconnect ?buffered ?sync ?lock ?prefered_sector_size 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. The size of sectors is choosen automatically for block devices, prefered_sector_size is used for regular files, the default value is 512. These defaults can be changed by supplying the optional arguments ~buffered:false and ~sync:false ~lock:true
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.
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)
discard sector n signals that the n sectors starting at sector are no longer needed and the contents may be discarded. Reads following the discard will return zeroes. Note the contents may not actually be irrecoverable: this is not a "secure erase".