package mirage-block-ramdisk
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=81a40f3e923385ec304164e2b8984acddd01c496590260b305bc077e57056850
sha512=aa8aabb18c81cb6cdec404d404809faeb28be55f24f044aaca333f34ea2bbc2c064cfec3b32fef55e614a945bcd458b96d5c46067d454e188672ad6eeaa6b4b7
doc/mirage-block-ramdisk/Ramdisk/index.html
Module Ramdisk
Source
An in-memory BLOCK device also known as a Ramdisk
Basic operation
include Mirage_block.S
The 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.
Create an in-memory block device (a "ramdisk") with a given name, total size in sectors and sector size. Two calls to connect
with the same name will return the same block device
Destroy removes an in-memory block device. Subsequent calls to connect
will create a fresh empty device.
Resizing support
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.
Querying sparseness information
seek_unmapped t start
returns the offset of the next guaranteed zero-filled region (typically guaranteed because it is unmapped)
seek_mapped t start
returns the offset of the next regoin of the device which may have data in it (typically this is the next mapped region)
Compatibility
flush t
is a no-op on a Ramdisk