class OpenForVerifiedRead

Defined at line 119 of file fidling/gen/sdk/fidl/fuchsia.hardware.block.verified/fuchsia.hardware.block.verified/cpp/fidl/fuchsia.hardware.block.verified/cpp/markers.h

Requests that the device verify that the provided `config` matches the

one on disk, and that the given `seal` covers the content of the

superblock. If all match as expected, then the device will bind a child

device named `verified` which speaks the `fuchsia.hardware.block`

protocol and enter the `verified-read` mode. Reads issued to the

`verified` block device will either successfully return the same content

as the `mutable` block device would have returned at the time the volume

was authored, or return a failure. That is to say: modifying the

underlying storage will cause the `verified` device to return read

failures for any modified blocks as `ZX_ERR_IO_DATA_INTEGRITY` rather

than data other than what was present at the time `CloseAndGenerateSeal`

was called.

* Returns `ZX_ERR_BAD_STATE` if the device was not in the `closed`

state at the time of the call

* Returns `ZX_ERR_INVALID_ARGS` if `config` lacks either `hash_function` or `block_size`

* Returns `ZX_ERR_INVALID_ARGS` if `seal` is of an unrecognized variant

* Returns `ZX_ERR_IO_DATA_INTEGRITY` if the `seal` provided is inconsistent with

the superblock, or if the properties in `config` are inconsistent with the

configuration data stored in the superblock on the underlying block device.

* Returns the underlying I/O error code if the underlying block device

returns an error.

On success, the device binds a child device `verified`, enters

`verified-read` mode, and returns from this call.

Public Members

static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal