class VPartition

Defined at line 32 of file ../../src/storage/fvm/driver/vpartition.h

Public Members

Mutex lock_

Public Methods

SliceMap::iterator ExtentBegin ()

Defined at line 67 of file ../../src/storage/fvm/driver/vpartition.h

void SliceSetUnsafe (uint64_t vslice, uint64_t pslice)

Defined at line 78 of file ../../src/storage/fvm/driver/vpartition.h

bool SliceCanFree (uint64_t vslice)

Returns true if the respective vslice is considered allocated by this partition.

Defined at line 85 of file ../../src/storage/fvm/driver/vpartition.h

zx_status_t Create (VPartitionManager * vpm, size_t entry_index, std::unique_ptr<VPartition> * out)

Defined at line 91 of file ../../src/storage/fvm/driver/vpartition.cc

size_t BlockSize ()

Defined at line 100 of file ../../src/storage/fvm/driver/vpartition.h

void AddBlocksLocked (ssize_t nblocks)

Defined at line 101 of file ../../src/storage/fvm/driver/vpartition.h

zx_status_t DdkGetProtocol (uint32_t proto_id, void * out)

Device Protocol

Defined at line 217 of file ../../src/storage/fvm/driver/vpartition.cc

void DdkMadeVisible ()

Defined at line 547 of file ../../src/storage/fvm/driver/vpartition.cc

void DdkRelease ()

Defined at line 531 of file ../../src/storage/fvm/driver/vpartition.cc

void BlockImplQuery (block_info_t * info_out, size_t * block_op_size_out)

Block Protocol

Defined at line 417 of file ../../src/storage/fvm/driver/vpartition.cc

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

Defined at line 280 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockPartitionGetGuid (guidtype_t guid_type, guid_t * out_guid)

Partition Protocol

Defined at line 425 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockPartitionGetName (char * out_name, size_t capacity)

Defined at line 445 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockPartitionGetMetadata (partition_metadata_t * out_metadata)

Defined at line 458 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockVolumeExtend (const slice_extent_t * extent)

Volume Protocol

Defined at line 477 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockVolumeShrink (const slice_extent_t * extent)

Defined at line 487 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockVolumeGetInfo (volume_manager_info_t * out_manager, volume_info_t * out_volume)

Defined at line 497 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockVolumeQuerySlices (const uint64_t * start_list, size_t start_count, slice_region_t * out_responses_list, size_t responses_count, size_t * out_responses_actual)

Defined at line 509 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t BlockVolumeDestroy ()

Defined at line 528 of file ../../src/storage/fvm/driver/vpartition.cc

bool SliceGetLocked (uint64_t vslice, uint64_t * out_pslice)

Returns true if the respective |vslice| is mapped to a physical slice, and sets |*pslice| to

the mapped physical slice. Returns false if the |vslice| is unallocated.

Defined at line 101 of file ../../src/storage/fvm/driver/vpartition.cc

size_t entry_index ()

Defined at line 103 of file ../../src/storage/fvm/driver/vpartition.h

void KillLocked ()

Defined at line 105 of file ../../src/storage/fvm/driver/vpartition.h

bool IsKilledLocked ()

Defined at line 106 of file ../../src/storage/fvm/driver/vpartition.h

zx_status_t AddSignalVisible (std::unique_ptr<VPartition> vp, const std::string & name, sync_completion_t * on_visible)

Add `vp` device, signaling `on_visible` once the device can be enumerated in devfs.

Defined at line 535 of file ../../src/storage/fvm/driver/vpartition.cc

zx_status_t CheckSlices (uint64_t vslice_start, size_t * count, bool * allocated)

Check slices starting from |vslice_start|.

Sets |*count| to the number of contiguous allocated or unallocated slices found.

Sets |*allocated| to true if the vslice range is allocated, and false otherwise.

Defined at line 111 of file ../../src/storage/fvm/driver/vpartition.cc

void SliceSetLocked (uint64_t vslice, uint64_t pslice)

Maps the respective |vslice| to the given |pslice| and it will be considered as allocated.

Defined at line 147 of file ../../src/storage/fvm/driver/vpartition.cc

void SliceFreeLocked (uint64_t vslice)

Marks |vslice| free from this partition. |vslice| is required to be allocated in the

partition, users should call SliceCanFree(vslice) before calling this method.

Defined at line 177 of file ../../src/storage/fvm/driver/vpartition.cc

size_t NumSlicesLocked ()

Returns the number of slices which are assigned to the vpartition.

Defined at line 196 of file ../../src/storage/fvm/driver/vpartition.cc

void ExtentDestroyLocked (uint64_t vslice)

Destroy the extent containing the vslice.

Defined at line 204 of file ../../src/storage/fvm/driver/vpartition.cc

void VPartition (VPartitionManager * vpm, size_t entry_index, size_t block_op_size)

Defined at line 83 of file ../../src/storage/fvm/driver/vpartition.cc

void ~VPartition ()

Defined at line 89 of file ../../src/storage/fvm/driver/vpartition.cc