template <>
class WireSyncBufferClientImpl
Defined at line 1102 of file fidling/gen/sdk/fidl/fuchsia.hardware.skipblock/fuchsia.hardware.skipblock/cpp/fidl/fuchsia.hardware.skipblock/cpp/wire_messaging.h
Public Methods
::fidl::WireUnownedResult< ::fuchsia_hardware_skipblock::SkipBlock::GetPartitionInfo> GetPartitionInfo ()
Returns information about the skip-block partition.
The block count can shrink in the event that a bad block is grown. It is
recommended to call this again after a bad block is grown.
Caller provides the backing storage for FIDL message via an argument to `.buffer()`.
::fidl::WireUnownedResult< ::fuchsia_hardware_skipblock::SkipBlock::Read> Read (::fuchsia_hardware_skipblock::wire::ReadWriteOperation && op)
Reads the specified blocks into the provided vmo.
Caller provides the backing storage for FIDL message via an argument to `.buffer()`.
::fidl::WireUnownedResult< ::fuchsia_hardware_skipblock::SkipBlock::Write> Write (::fuchsia_hardware_skipblock::wire::ReadWriteOperation && op)
Erases and writes the specified blocks from the provided vmo.
In the event that bad block is grown, the partition will shrink and
`bad_block_grown` will be set to true. Since this causes the logical to
physical block map to change, all previously written blocks at logical
addresses after the section being written should be considered corrupted,
and rewritten if applicable.
Caller provides the backing storage for FIDL message via an argument to `.buffer()`.
::fidl::WireUnownedResult< ::fuchsia_hardware_skipblock::SkipBlock::WriteBytes> WriteBytes (::fuchsia_hardware_skipblock::wire::WriteBytesOperation && op)
Erases and writes the specified bytes from the provided vmo. If offset
and size in `op` are not aligned to `block_size_bytes` then the driver will
first read the partitially written blocks and combine them with the
provided vmo.
In the event that bad block is grown, the partition will shrink and
`bad_block_grown` will be set to true. Since this causes the logical to
physical block map to change, all previously written blocks at logical
addresses after the section being written should be considered corrupted,
and rewritten if applicable.
Caller provides the backing storage for FIDL message via an argument to `.buffer()`.
::fidl::WireUnownedResult< ::fuchsia_hardware_skipblock::SkipBlock::WriteBytesWithoutErase> WriteBytesWithoutErase (::fuchsia_hardware_skipblock::wire::WriteBytesOperation && op)
Similar to WriteBytes except that it does not erase before writing
to a block, and it will simply abort when any error, including bad block
grown, occurs. The service is intended to be used for fine-tune optimization to reduce
NAND PE cycles.
It should be noted that the caller must follow the requirements of the NAND chip.
Not all chips support write-without-erase, and those that do usually require writing
only to empty pages and in order (i.e. from the LSB page to MSB page within a block)
Failure to follow these requirements is undefined behavior, and may result in unexpected
changes to the NAND even outside the given write range and crc errors that leave the
storage in an unreadable state.
The safe way of using this method is to first back up the data in the minimal
block range that covers the write range. If the method returns failure, fall back and
re-write the backed-up data (can be updated with the new data) to the minimal block
range using either WriteBytes or Write method.
Caller provides the backing storage for FIDL message via an argument to `.buffer()`.