RecoverySynchronousProxy

Struct RecoverySynchronousProxy 

Source
pub struct RecoverySynchronousProxy { /* private fields */ }

Implementations§

Source§

impl RecoverySynchronousProxy

Source

pub fn new(channel: Channel) -> Self

Source

pub fn into_channel(self) -> Channel

Source

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.

Source

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!

Source

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.

Source

pub fn format_system_blob_volume( &self, ___deadline: MonotonicInstant, ) -> Result<RecoveryFormatSystemBlobVolumeResult, Error>

Formats the blob volume in the system container. If the system container does not have a blob volume, a new one will be created. All existing blobs will be deleted. If the system container is corrupt or unmountable, this function will have no effect and will leave the disk intact.

WARNING: This can cause irreversible data loss and can render a device unbootable.

Source

pub fn mount_system_blob_volume( &self, blob_exposed_dir: ServerEnd<DirectoryMarker>, ___deadline: MonotonicInstant, ) -> Result<RecoveryMountSystemBlobVolumeResult, Error>

Mounts the system container’s blob volume, and returns a handle to the blob volume’s exposed directory to facilitate writing a new system. The system container will remain mounted as long as blob_exposed_dir is kept open. Only the blob volume will be mounted.

Source

pub fn get_blob_image_handle( &self, ___deadline: MonotonicInstant, ) -> Result<RecoveryGetBlobImageHandleResult, Error>

Obtains a handle to a file where a new system blob volume can be written. The contents of the file must be a valid fxfs partition image containing a blob volume. The existing blob volume will remain unmodified until the system is rebooted, or InstallBlobImage is called. The system container will remain mounted as long as mount_token is kept open. NOTE: This method will delete any existing image data cached on disk. Callers are responsible for keeping the returned image_file and mount_token alive until the system image has been fully written and flushed to disk.

§Errors
  • ZX_ERR_IO_DATA_INTEGRITY: An existing filesystem was found on the device, but it could not be mounted. This indicates that the filesystem is possibly corrupt, or has a newer on-disk version than the recovery image. To avoid unintended data loss, the user should explicitly initiate any remedial action, such as wiping the device or using a newer image.
  • ZX_ERR_INTERNAL: An internal error occured; see fshost logs for more context.
Source

pub fn install_blob_image( &self, ___deadline: MonotonicInstant, ) -> Result<RecoveryInstallBlobImageResult, Error>

Installs the blob volume previously written via GetBlobImageHandle, replacing the existing blob volume in the system container. On failure, the existing blob volume will remain intact, and the written image will be deleted to free space. A new blob image can then be written and the installation process restarted. If no blob volume has been written, this will have no effect. This function will block until the system container is unmounted.

Trait Implementations§

Source§

impl Debug for RecoverySynchronousProxy

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<Channel> for RecoverySynchronousProxy

Available on Fuchsia only.
Source§

fn from(value: Channel) -> Self

Converts to this type from the input type.
Source§

impl From<RecoverySynchronousProxy> for Handle

Available on Fuchsia only.
Source§

fn from(value: RecoverySynchronousProxy) -> Self

Converts to this type from the input type.
Source§

impl FromClient for RecoverySynchronousProxy

Available on Fuchsia only.
Source§

type Protocol = RecoveryMarker

The protocol.
Source§

fn from_client(value: ClientEnd<RecoveryMarker>) -> Self

Converts from a client.
Source§

impl SynchronousProxy for RecoverySynchronousProxy

Available on Fuchsia only.
Source§

type Proxy = RecoveryProxy

The async proxy for the same protocol.
Source§

type Protocol = RecoveryMarker

The protocol which this Proxy controls.
Source§

fn from_channel(inner: Channel) -> Self

Create a proxy over the given channel.
Source§

fn into_channel(self) -> Channel

Convert the proxy back into a channel.
Source§

fn as_channel(&self) -> &Channel

Get a reference to the proxy’s underlying channel. Read more
Source§

fn is_closed(&self) -> Result<bool, Status>

Returns true if the proxy has received the PEER_CLOSED signal. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.