class BlockDevice

Defined at line 61 of file ../../src/devices/block/drivers/ftl/block_device.h

Exposes the FTL library as a Fuchsia BlockDevice protocol.

Public Methods

void DdkRelease ()

Defined at line 72 of file ../../src/devices/block/drivers/ftl/block_device.h

void BlockDevice (zx_device_t * parent, fdf_dispatcher_t * dispatcher)

dispatcher is required to run configuration service handlers.

Defined at line 78 of file ../../src/devices/block/drivers/ftl/block_device.cc

void ~BlockDevice ()

Defined at line 81 of file ../../src/devices/block/drivers/ftl/block_device.cc

void Format (FormatCompleter::Sync & completer)

Defined at line 92 of file ../../src/devices/block/drivers/ftl/block_device.h

void GetVmo (GetVmoCompleter::Sync & completer)

Defined at line 94 of file ../../src/devices/block/drivers/ftl/block_device.h

zx_status_t Bind ()

Defined at line 97 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx::vmo DuplicateInspectVmo ()

Returns a read_only handle to the underlying Inspect VMO.

Defined at line 110 of file ../../src/devices/block/drivers/ftl/block_device.h

OperationCounters & nand_counters ()

Defined at line 112 of file ../../src/devices/block/drivers/ftl/block_device.h

void SetNandParentForTest (const nand_protocol_t & nand)

Defined at line 116 of file ../../src/devices/block/drivers/ftl/block_device.h

void BlockDevice (BlockDevice && )

Defined at line 118 of file ../../src/devices/block/drivers/ftl/block_device.h

void BlockDevice (const BlockDevice & )

Defined at line 118 of file ../../src/devices/block/drivers/ftl/block_device.h

BlockDevice & operator= (const BlockDevice & )

Defined at line 118 of file ../../src/devices/block/drivers/ftl/block_device.h

BlockDevice & operator= (BlockDevice && )

Defined at line 118 of file ../../src/devices/block/drivers/ftl/block_device.h

void DdkUnbind (ddk::UnbindTxn txn)

Defined at line 137 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx_status_t Init ()

Performs the object initialization.

Defined at line 143 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx_status_t Suspend ()

Device protocol implementation.

Defined at line 169 of file ../../src/devices/block/drivers/ftl/block_device.cc

void DdkSuspend (ddk::SuspendTxn txn)

Defined at line 174 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx_status_t DdkGetProtocol (uint32_t proto_id, void * out_protocol)

Defined at line 180 of file ../../src/devices/block/drivers/ftl/block_device.cc

void BlockImplQuery (block_info_t * info_out, size_t * block_op_size_out)

Block protocol implementation.

Defined at line 195 of file ../../src/devices/block/drivers/ftl/block_device.cc

void BlockImplQueue (block_op_t * operation, block_impl_queue_callback completion_cb, void * cookie)

Defined at line 205 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx_status_t BlockPartitionGetGuid (guidtype_t guid_type, guid_t * out_guid)

Partition protocol implementation.

Defined at line 248 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx_status_t BlockPartitionGetName (char * out_name, size_t capacity)

Defined at line 257 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx_status_t BlockPartitionGetMetadata (partition_metadata_t * out_metadata)

Defined at line 265 of file ../../src/devices/block/drivers/ftl/block_device.cc

void Get (GetCompleter::Sync & completer)

Configuration interface.

Defined at line 536 of file ../../src/devices/block/drivers/ftl/block_device.cc

void Set (fuchsia_storage_ftl::wire::ConfigurationOptions * request, SetCompleter::Sync & completer)

Defined at line 554 of file ../../src/devices/block/drivers/ftl/block_device.cc

bool OnVolumeAdded (uint32_t page_size, uint32_t num_pages)

FtlInstance interface.

Defined at line 275 of file ../../src/devices/block/drivers/ftl/block_device.cc

zx_status_t FormatInternal ()

Issues a command to format the FTL (aka, delete all data).

Defined at line 281 of file ../../src/devices/block/drivers/ftl/block_device.cc

void SetVolumeForTest (std::unique_ptr<ftl::Volume> volume)

Defined at line 531 of file ../../src/devices/block/drivers/ftl/block_device.cc