fidl_fuchsia_paver

Struct BootManagerSynchronousProxy

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

Implementations§

Source§

impl BootManagerSynchronousProxy

Source

pub fn new(channel: Channel) -> Self

Source

pub fn into_channel(self) -> Channel

Source

pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<BootManagerEvent, 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 query_current_configuration( &self, ___deadline: MonotonicInstant, ) -> Result<BootManagerQueryCurrentConfigurationResult, Error>

Queries the configuration the system is currently running.

Returns ZX_ERR_NOT_SUPPORTED if the zvb.current_slot boot argument cannot be read or is an unexpected value.

Source

pub fn query_active_configuration( &self, ___deadline: MonotonicInstant, ) -> Result<BootManagerQueryActiveConfigurationResult, Error>

Queries the configuration which will be used as the default boot choice on a normal cold boot, which may differ from the currently running configuration. Configuration::RECOVERY should never be active.

Returns ZX_ERR_NOT_SUPPORTED if Configuration.RECOVERY is active.

Source

pub fn query_configuration_last_set_active( &self, ___deadline: MonotonicInstant, ) -> Result<BootManagerQueryConfigurationLastSetActiveResult, Error>

Queries the configuration that was last explicitly marked as active by SetConfigurationActive(). The result is not affected by the current status of the slot.

A newly updated slot is typically marked as active immediately. Therefore this interface can be used as a way to identify the newest slot.

Returns ZX_ERR_IO if fail to load abr metadata. Returns ZX_ERR_INTERNAL if invalid slot index is returned by libabr routine.

Source

pub fn query_configuration_status( &self, configuration: Configuration, ___deadline: MonotonicInstant, ) -> Result<BootManagerQueryConfigurationStatusResult, Error>

Queries status of configuration.

Returns ZX_ERR_INVALID_ARGS if Configuration.RECOVERY is passed in via configuration.

Source

pub fn query_configuration_status_and_boot_attempts( &self, configuration: Configuration, ___deadline: MonotonicInstant, ) -> Result<BootManagerQueryConfigurationStatusAndBootAttemptsResult, Error>

Queries status of configuration.

The returned table contains:

  • status: the current ConfigurationStatus

  • boot_attempts: if status is ConfigurationStatus::PENDING, this will be the number of times this configuration has attempted to boot, including the current attempt. For any other status this value will not be provided.

    If provided, this value will be in the range [0, MAX_PENDING_BOOT_ATTEMPTS]. 0 indicates the configuration was just set active and has not attempted any boots yet, and MAX_PENDING_BOOT_ATTEMPTS indicates that all attempts have been used.

  • unbootable_reason: if status is ConfigurationStatus::UNBOOTABLE, this will be the reported reason for why the configuration is unbootable. For any other status this value will not be provided.

Returns ZX_ERR_INVALID_ARGS if Configuration.RECOVERY is passed in via configuration.

Source

pub fn set_configuration_active( &self, configuration: Configuration, ___deadline: MonotonicInstant, ) -> Result<i32, Error>

Updates persistent metadata identifying which configuration should be selected as ‘primary’ for booting purposes. Should only be called after KERNEL as well as optional VERIFIED_BOOT_METADATA assets for specified configuration were written successfully.

Also resets the boot attempts count for the given Configuration.

Returns ZX_ERR_INVALID_ARGS if Configuration.RECOVERY is passed in via configuration.

Source

pub fn set_configuration_unbootable( &self, configuration: Configuration, ___deadline: MonotonicInstant, ) -> Result<i32, Error>

Updates persistent metadata identifying whether configuration is bootable. Should only be called in the following situations:

  • Before KERNEL as well as optional VERIFIED_BOOT_METADATA assets for specified configuration are written.
  • After successfully booting from a new configuration and marking it healthy. This method would be then called on the old configuration.
  • After “successfully” booting from a new configuration, but encountering an unrecoverable error during health check. This method would be then called on the new configuration.

If the configuration is unbootable, no action is taken.

Returns ZX_ERR_INVALID_ARGS if Configuration.RECOVERY is passed in via configuration.

Source

pub fn set_configuration_healthy( &self, configuration: Configuration, ___deadline: MonotonicInstant, ) -> Result<i32, Error>

Updates persistent metadata to mark a [fuchsia.paver/Configuration] as successful.

This function is typically used by the OS update system after having confirmed that the configuration works as intended and the “rollback to previous slot” logic is not needed anymore.

Compatibility between the newly successful configuration and the other configuration is unknown. Even if the other configuration was successful at one point, it may no longer be. This function adds a success mark to the given configuration but also removes any success mark on the other.

If configuration is unbootable or is [fuchsia.paver/Configuration.RECOVERY], response will be ZX_ERR_INVALID_ARGS.

  • request configuration the Configuration to mark as healthy. Must not be RECOVERY.
  • response status a zx_status value indicating success or failure.
Source

pub fn set_one_shot_recovery( &self, ___deadline: MonotonicInstant, ) -> Result<BootManagerSetOneShotRecoveryResult, Error>

Force device to boot to recovery in the next reboot/power cycle. This will only be triggered once and will be reset after the reboot. State of A/B configuration slot will not be affected.

Source

pub fn flush(&self, ___deadline: MonotonicInstant) -> Result<i32, Error>

Flush all previously buffered writes to persistent storage.

Trait Implementations§

Source§

impl Debug for BootManagerSynchronousProxy

Source§

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

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

impl SynchronousProxy for BootManagerSynchronousProxy

Source§

type Proxy = BootManagerProxy

The async proxy for the same protocol.
Source§

type Protocol = BootManagerMarker

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
§

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
§

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

§

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
§

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

§

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more