Crate fidl_fuchsia_power_broker

Source

Macros§

AddElementErrorUnknown
Pattern that matches an unknown AddElementError member.
CurrentLevelErrorUnknown
Pattern that matches an unknown CurrentLevelError member.
DependencyTypeUnknown
Pattern that matches an unknown DependencyType member.
ElementInfoProviderErrorUnknown
Pattern that matches an unknown ElementInfoProviderError member.
LeaseErrorUnknown
Pattern that matches an unknown LeaseError member.
LeaseStatusUnknown
Pattern that matches an unknown LeaseStatus member.
ModifyDependencyErrorUnknown
Pattern that matches an unknown ModifyDependencyError member.
RegisterDependencyTokenErrorUnknown
Pattern that matches an unknown RegisterDependencyTokenError member.
RequiredLevelErrorUnknown
Pattern that matches an unknown RequiredLevelError member.
StatusErrorUnknown
Pattern that matches an unknown StatusError member.
UnregisterDependencyTokenErrorUnknown
Pattern that matches an unknown UnregisterDependencyTokenError member.

Structs§

CurrentLevelControlHandle
CurrentLevelEventStream
CurrentLevelMarker
CurrentLevelProxy
CurrentLevelRequestStream
A Stream of incoming requests for fuchsia.power.broker/CurrentLevel.
CurrentLevelSynchronousProxy
CurrentLevelUpdateRequest
CurrentLevelUpdateResponder
ElementControlControlHandle
ElementControlEventStream
ElementControlMarker
ElementControlOpenStatusChannelRequest
ElementControlProxy
ElementControlRegisterDependencyTokenRequest
ElementControlRegisterDependencyTokenResponder
ElementControlRequestStream
A Stream of incoming requests for fuchsia.power.broker/ElementControl.
ElementControlSynchronousProxy
ElementControlUnregisterDependencyTokenRequest
ElementControlUnregisterDependencyTokenResponder
ElementInfoProviderControlHandle
ElementInfoProviderEventStream
ElementInfoProviderGetElementPowerLevelNamesResponder
ElementInfoProviderGetElementPowerLevelNamesResponse
ElementInfoProviderGetStatusEndpointsResponder
ElementInfoProviderGetStatusEndpointsResponse
ElementInfoProviderMarker
ElementInfoProviderProxy
ElementInfoProviderRequestStream
A Stream of incoming requests for fuchsia.power.broker/ElementInfoProvider.
ElementInfoProviderServiceMarker
ElementInfoProviderServiceProxy
ElementInfoProviderSynchronousProxy
ElementPowerLevelNames
Mapping of a vector of [fuchsia.power.broker/PowerLevelName] to a Power Element via its plaintext name. Names are expected to be unique between elements and persistent across reboots of the same build, but consistency is not guaranteed between different builds.
ElementRunnerControlHandle
ElementRunnerEventStream
ElementRunnerMarker
ElementRunnerProxy
ElementRunnerRequestStream
A Stream of incoming requests for fuchsia.power.broker/ElementRunner.
ElementRunnerSetLevelRequest
ElementRunnerSetLevelResponder
ElementRunnerSynchronousProxy
ElementSchema
Passed to Topology.AddElement.
ElementStatusEndpoint
Status client endpoint and a plaintext name for a specific Power Element. Names are expected to be unique between elements and persistent across reboots of the same build, but consistency is not guaranteed between different builds.
LeaseControlControlHandle
LeaseControlEventStream
LeaseControlMarker
LeaseControlProxy
LeaseControlRequestStream
A Stream of incoming requests for fuchsia.power.broker/LeaseControl.
LeaseControlSynchronousProxy
LeaseControlWatchStatusRequest
LeaseControlWatchStatusResponder
LeaseControlWatchStatusResponse
LessorControlHandle
LessorEventStream
LessorLeaseRequest
LessorLeaseResponder
LessorLeaseResponse
LessorMarker
LessorProxy
LessorRequestStream
A Stream of incoming requests for fuchsia.power.broker/Lessor.
LessorSynchronousProxy
LevelControlChannels
LevelDependency
Describes a dependency from one power element’s level on another power element’s level. For example if element PowerElement_A has a level PowerLevel_A3 which depends on an element PowerElement_B being at PowerLevel_B2 where the dependency is DependencyType::ASSERTIVE then we would fill out the struct to convey the meaning:
Permissions
Element Permissions
PowerLevelName
Mapping of a plaintext name to a PowerLevel. Names are expected to be unique between elements and persistent across reboots of the same build, but consistency is not guaranteed between different builds.
RequiredLevelControlHandle
RequiredLevelEventStream
RequiredLevelMarker
RequiredLevelProxy
RequiredLevelRequestStream
A Stream of incoming requests for fuchsia.power.broker/RequiredLevel.
RequiredLevelSynchronousProxy
RequiredLevelWatchResponder
RequiredLevelWatchResponse
StatusControlHandle
StatusEventStream
StatusMarker
StatusProxy
StatusRequestStream
A Stream of incoming requests for fuchsia.power.broker/Status.
StatusSynchronousProxy
StatusWatchPowerLevelResponder
StatusWatchPowerLevelResponse
TopologyAddElementResponder
TopologyControlHandle
TopologyEventStream
TopologyMarker
TopologyProxy
TopologyRequestStream
A Stream of incoming requests for fuchsia.power.broker/Topology.
TopologySynchronousProxy

Enums§

AddElementError
BinaryPowerLevel
BinaryPowerLevel is a well-known set of PowerLevels with only two states: OFF and ON.
CurrentLevelError
CurrentLevelEvent
CurrentLevelRequest
CurrentLevel and RequiredLevel must both be used by all managed Power Elements as part of the power level handshake with Power Broker:
DependencyType
An assertive dependency is strongly-fulfilled and orderly-on-termination. An opportunistic dependency is weakly-fulfilled but still orderly-on-termination.
ElementControlEvent
ElementControlRequest
Provides element-scoped access to an element previously added via Topology.AddElement.
ElementInfoProviderError
ElementInfoProviderEvent
ElementInfoProviderRequest
Provides an interface to retrieve information about PowerElements managed by a component.
ElementInfoProviderServiceRequest
A request for one of the member protocols of ElementInfoProviderService.
ElementRunnerEvent
ElementRunnerRequest
The runner or operator of an element. This should be implemented by all element owners. The client end is passed to Power Broker via ElementSchema.element_runner. Power Broker calls SetLevel initially, and then whenever the required level of the element changes.
LeaseControlEvent
LeaseControlRequest
Provides lease-scoped access to actions that can be taken on a lease previously acquired via Lessor.Lease. Closing this control channel drops the lease. TODO(https://fxbug.dev/339474151): Switch from a protocol to an eventpair.
LeaseError
LeaseStatus
LessorEvent
LessorRequest
Provides element-scoped access to request leases to raise the levels of an element previously added via Topology.AddElement.
ModifyDependencyError
RegisterDependencyTokenError
RequiredLevelError
RequiredLevelEvent
RequiredLevelRequest
Part of the power level handshake with Power Broker used for receiving required levels from Power Broker. See above note on CurrentLevel. Established via Topology.AddElement.
StatusError
StatusEvent
StatusRequest
Provides read-only access to the current PowerLevel of an element and the ability to watch changes to an element’s power level. A new channel to this protocol can be obtained by calling OpenStatus on the element’s ElementControl channel (and passed to other clients who need access to the element’s current power level).
TopologyEvent
TopologyRequest
This is the primary initial protocol used by Power Element Owners to communicate with Power Broker. Power Element Owners should add the elements they own to the Power Topology through AddElement. All further interactions with Power Broker are done through channels opened by the AddElement call, which are scoped to the added element.
UnregisterDependencyTokenError

Constants§

MAX_DEPENDENCIES_IN_ADD_ELEMENT
MAX_ELEMENT_NAME_LEN
MAX_LEVEL_NAME_LEN
PowerLevel name lengths are limited to reduce Inspect space usage
MAX_TOKENS_IN_ADD_ELEMENT
MAX_VALID_POWER_LEVELS

Traits§

CurrentLevelProxyInterface
ElementControlProxyInterface
ElementInfoProviderProxyInterface
ElementRunnerProxyInterface
LeaseControlProxyInterface
LessorProxyInterface
RequiredLevelProxyInterface
StatusProxyInterface
TopologyProxyInterface

Type Aliases§

CurrentLevelUpdateResult
DependencyToken
A token that represents the right to add a dependency upon another element. Should first be registered with Power Broker via ElementControl.RegisterDependencyToken of the required element.
ElementControlRegisterDependencyTokenResult
ElementControlUnregisterDependencyTokenResult
ElementInfoProviderGetElementPowerLevelNamesResult
ElementInfoProviderGetStatusEndpointsResult
LeaseId
LessorLeaseResult
PowerLevel
Used to describe the power level of an element. Could extend this further to support additional types of power levels, such as ACPI.
RequiredLevelWatchResult
StatusWatchPowerLevelResult
TopologyAddElementResult