pub enum AdminRequest {
Mount {
device: ClientEnd<BlockMarker>,
name: String,
options: MountOptions,
responder: AdminMountResponder,
},
Unmount {
name: String,
responder: AdminUnmountResponder,
},
GetDevicePath {
fs_id: u64,
responder: AdminGetDevicePathResponder,
},
WriteDataFile {
filename: String,
payload: Vmo,
responder: AdminWriteDataFileResponder,
},
WipeStorage {
blobfs_root: Option<ServerEnd<DirectoryMarker>>,
blob_creator: Option<ServerEnd<BlobCreatorMarker>>,
responder: AdminWipeStorageResponder,
},
ShredDataVolume {
responder: AdminShredDataVolumeResponder,
},
StorageHostEnabled {
responder: AdminStorageHostEnabledResponder,
},
}
Expand description
Manages fshost lifecycle
Variants§
Mount
Mounts the filesystem on the block device. The filesystem will be mounted in /fs/mnt/
Unmount
Unmounts a previously mounted filesystem.
GetDevicePath
Returns the device path for the filesystem with the given fs_id.
WriteDataFile
Writes filename
into the data partition with contents from payload
, formatting the data
partition if it isn’t already formatted. Overwrites file if it already exists.
This can only be called while the data partition isn’t already mounted, which is typically
in recovery builds where fshost is running with the ramdisk_image
flag set.
WipeStorage
Reprovision the first non-ramdisk FVM volume, and format/mount the blob partition.
The formatted Blobfs instance can be accessed via the client end of blobfs_root
; if no
handle is provided, then blobfs won’t be formatted.
If fxblob is configured, blob_creator will be connected with the fxfs BlobCreator protocol,
which should be used instead of creating blobs in the blobfs_root
. blobfs_root
will
still be connected and can be used to read blobs. If fxblob is configured, but no handle is
provided for blob_creator or for blobfs_root, the blob volume won’t be formatted. If a
handle is provided for blob_creator but fxblob is not configured, the channel will be
closed.
This function will pause the fshost block watcher regardless of success or failure.
Requires fshost to be started with the ramdisk_image
config option set to true.
WARNING: This will cause irreversible data loss. Use with caution.
TODO(https://fxbug.dev/42063480): This function unbinds all child drivers of the volume to be wiped. This can race with the fshost block device manager, which attempts to bind the FVM driver and unseal the zxcrypt volume.
Fields
responder: AdminWipeStorageResponder
ShredDataVolume
Wipes the data volume which will get reinitialised upon next boot. This is not cryptographically secure; the caller should take care to reset hardware keys.
Fields
responder: AdminShredDataVolumeResponder
StorageHostEnabled
Returns whether fshost is configured to use storage-host.
Fields
responder: AdminStorageHostEnabledResponder
Implementations§
Source§impl AdminRequest
impl AdminRequest
pub fn into_mount( self, ) -> Option<(ClientEnd<BlockMarker>, String, MountOptions, AdminMountResponder)>
pub fn into_unmount(self) -> Option<(String, AdminUnmountResponder)>
pub fn into_get_device_path(self) -> Option<(u64, AdminGetDevicePathResponder)>
pub fn into_write_data_file( self, ) -> Option<(String, Vmo, AdminWriteDataFileResponder)>
pub fn into_wipe_storage( self, ) -> Option<(Option<ServerEnd<DirectoryMarker>>, Option<ServerEnd<BlobCreatorMarker>>, AdminWipeStorageResponder)>
pub fn into_shred_data_volume(self) -> Option<AdminShredDataVolumeResponder>
pub fn into_storage_host_enabled( self, ) -> Option<AdminStorageHostEnabledResponder>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL