Macros§
- AddElement
Error Unknown - Pattern that matches an unknown
AddElementError
member. - Current
Level Error Unknown - Pattern that matches an unknown
CurrentLevelError
member. - Dependency
Type Unknown - Pattern that matches an unknown
DependencyType
member. - Element
Info Provider Error Unknown - Pattern that matches an unknown
ElementInfoProviderError
member. - Lease
Error Unknown - Pattern that matches an unknown
LeaseError
member. - Lease
Status Unknown - Pattern that matches an unknown
LeaseStatus
member. - Modify
Dependency Error Unknown - Pattern that matches an unknown
ModifyDependencyError
member. - Register
Dependency Token Error Unknown - Pattern that matches an unknown
RegisterDependencyTokenError
member. - Required
Level Error Unknown - Pattern that matches an unknown
RequiredLevelError
member. - Status
Error Unknown - Pattern that matches an unknown
StatusError
member. - Unregister
Dependency Token Error Unknown - Pattern that matches an unknown
UnregisterDependencyTokenError
member.
Structs§
- Current
Level Control Handle - Current
Level Event Stream - Current
Level Marker - Current
Level Proxy - Current
Level Request Stream - A Stream of incoming requests for fuchsia.power.broker/CurrentLevel.
- Current
Level Synchronous Proxy - Current
Level Update Request - Current
Level Update Responder - Element
Control Control Handle - Element
Control Event Stream - Element
Control Marker - Element
Control Open Status Channel Request - Element
Control Proxy - Element
Control Register Dependency Token Request - Element
Control Register Dependency Token Responder - Element
Control Request Stream - A Stream of incoming requests for fuchsia.power.broker/ElementControl.
- Element
Control Synchronous Proxy - Element
Control Unregister Dependency Token Request - Element
Control Unregister Dependency Token Responder - Element
Info Provider Control Handle - Element
Info Provider Event Stream - Element
Info Provider GetElement Power Level Names Responder - Element
Info Provider GetElement Power Level Names Response - Element
Info Provider GetStatus Endpoints Responder - Element
Info Provider GetStatus Endpoints Response - Element
Info Provider Marker - Element
Info Provider Proxy - Element
Info Provider Request Stream - A Stream of incoming requests for fuchsia.power.broker/ElementInfoProvider.
- Element
Info Provider Service Marker - Element
Info Provider Service Proxy - Element
Info Provider Synchronous Proxy - Element
Power Level Names - 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. - Element
Runner Control Handle - Element
Runner Event Stream - Element
Runner Marker - Element
Runner Proxy - Element
Runner Request Stream - A Stream of incoming requests for fuchsia.power.broker/ElementRunner.
- Element
Runner SetLevel Request - Element
Runner SetLevel Responder - Element
Runner Synchronous Proxy - Element
Schema - Passed to Topology.AddElement.
- Element
Status Endpoint - 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.
- Lease
Control Control Handle - Lease
Control Event Stream - Lease
Control Marker - Lease
Control Proxy - Lease
Control Request Stream - A Stream of incoming requests for fuchsia.power.broker/LeaseControl.
- Lease
Control Synchronous Proxy - Lease
Control Watch Status Request - Lease
Control Watch Status Responder - Lease
Control Watch Status Response - Lessor
Control Handle - Lessor
Event Stream - Lessor
Lease Request - Lessor
Lease Responder - Lessor
Lease Response - Lessor
Marker - Lessor
Proxy - Lessor
Request Stream - A Stream of incoming requests for fuchsia.power.broker/Lessor.
- Lessor
Synchronous Proxy - Level
Control Channels - Level
Dependency - Describes a dependency from one power element’s level on another power
element’s level.
For example if element
PowerElement_A
has a levelPowerLevel_A3
which depends on an elementPowerElement_B
being atPowerLevel_B2
where the dependency isDependencyType::ASSERTIVE
then we would fill out the struct to convey the meaning: - Permissions
- Element Permissions
- Power
Level Name - 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.
- Required
Level Control Handle - Required
Level Event Stream - Required
Level Marker - Required
Level Proxy - Required
Level Request Stream - A Stream of incoming requests for fuchsia.power.broker/RequiredLevel.
- Required
Level Synchronous Proxy - Required
Level Watch Responder - Required
Level Watch Response - Status
Control Handle - Status
Event Stream - Status
Marker - Status
Proxy - Status
Request Stream - A Stream of incoming requests for fuchsia.power.broker/Status.
- Status
Synchronous Proxy - Status
Watch Power Level Responder - Status
Watch Power Level Response - Topology
AddElement Responder - Topology
Control Handle - Topology
Event Stream - Topology
Marker - Topology
Proxy - Topology
Request Stream - A Stream of incoming requests for fuchsia.power.broker/Topology.
- Topology
Synchronous Proxy
Enums§
- AddElement
Error - Binary
Power Level - BinaryPowerLevel is a well-known set of PowerLevels with only two states: OFF and ON.
- Current
Level Error - Current
Level Event - Current
Level Request - CurrentLevel and RequiredLevel must both be used by all managed Power Elements as part of the power level handshake with Power Broker:
- Dependency
Type - An assertive dependency is strongly-fulfilled and orderly-on-termination. An opportunistic dependency is weakly-fulfilled but still orderly-on-termination.
- Element
Control Event - Element
Control Request - Provides element-scoped access to an element previously added via Topology.AddElement.
- Element
Info Provider Error - Element
Info Provider Event - Element
Info Provider Request - Provides an interface to retrieve information about PowerElements managed by a component.
- Element
Info Provider Service Request - A request for one of the member protocols of ElementInfoProviderService.
- Element
Runner Event - Element
Runner Request - 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.
- Lease
Control Event - Lease
Control Request - 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.
- Lease
Error - Lease
Status - Lessor
Event - Lessor
Request - Provides element-scoped access to request leases to raise the levels of an element previously added via Topology.AddElement.
- Modify
Dependency Error - Register
Dependency Token Error - Required
Level Error - Required
Level Event - Required
Level Request - 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.
- Status
Error - Status
Event - Status
Request - 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).
- Topology
Event - Topology
Request - 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.
- Unregister
Dependency Token Error
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§
- Current
Level Proxy Interface - Element
Control Proxy Interface - Element
Info Provider Proxy Interface - Element
Runner Proxy Interface - Lease
Control Proxy Interface - Lessor
Proxy Interface - Required
Level Proxy Interface - Status
Proxy Interface - Topology
Proxy Interface
Type Aliases§
- Current
Level Update Result - Dependency
Token - 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.
- Element
Control Register Dependency Token Result - Element
Control Unregister Dependency Token Result - Element
Info Provider GetElement Power Level Names Result - Element
Info Provider GetStatus Endpoints Result - LeaseId
- Lessor
Lease Result - Power
Level - Used to describe the power level of an element. Could extend this further to support additional types of power levels, such as ACPI.
- Required
Level Watch Result - Status
Watch Power Level Result - Topology
AddElement Result