pub struct RecoverySynchronousProxy { /* private fields */ }
Implementations§
Source§impl RecoverySynchronousProxy
impl RecoverySynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<RecoveryEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<RecoveryEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
Sourcepub fn init_system_partition_table(
&self,
partitions: &[PartitionInfo],
___deadline: MonotonicInstant,
) -> Result<RecoveryInitSystemPartitionTableResult, Error>
pub fn init_system_partition_table( &self, partitions: &[PartitionInfo], ___deadline: MonotonicInstant, ) -> Result<RecoveryInitSystemPartitionTableResult, Error>
Wipes and re-initializes the system partition table. This is a destructive operation!
Sourcepub fn write_data_file(
&self,
filename: &str,
payload: Vmo,
___deadline: MonotonicInstant,
) -> Result<RecoveryWriteDataFileResult, Error>
pub fn write_data_file( &self, filename: &str, payload: Vmo, ___deadline: MonotonicInstant, ) -> Result<RecoveryWriteDataFileResult, Error>
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.
Sourcepub fn wipe_storage(
&self,
blobfs_root: Option<ServerEnd<DirectoryMarker>>,
blob_creator: Option<ServerEnd<BlobCreatorMarker>>,
___deadline: MonotonicInstant,
) -> Result<RecoveryWipeStorageResult, Error>
pub fn wipe_storage( &self, blobfs_root: Option<ServerEnd<DirectoryMarker>>, blob_creator: Option<ServerEnd<BlobCreatorMarker>>, ___deadline: MonotonicInstant, ) -> Result<RecoveryWipeStorageResult, Error>
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.
Trait Implementations§
Source§impl Debug for RecoverySynchronousProxy
impl Debug for RecoverySynchronousProxy
Source§impl From<Channel> for RecoverySynchronousProxy
impl From<Channel> for RecoverySynchronousProxy
Source§impl From<RecoverySynchronousProxy> for Handle
impl From<RecoverySynchronousProxy> for Handle
Source§fn from(value: RecoverySynchronousProxy) -> Self
fn from(value: RecoverySynchronousProxy) -> Self
Source§impl FromClient for RecoverySynchronousProxy
impl FromClient for RecoverySynchronousProxy
Source§type Protocol = RecoveryMarker
type Protocol = RecoveryMarker
Source§fn from_client(value: ClientEnd<RecoveryMarker>) -> Self
fn from_client(value: ClientEnd<RecoveryMarker>) -> Self
Source§impl SynchronousProxy for RecoverySynchronousProxy
impl SynchronousProxy for RecoverySynchronousProxy
Source§type Proxy = RecoveryProxy
type Proxy = RecoveryProxy
Source§type Protocol = RecoveryMarker
type Protocol = RecoveryMarker
Proxy
controls.