Macros§
- Pattern that matches an unknown
AddElementError
member. - Pattern that matches an unknown
CurrentLevelError
member. - Pattern that matches an unknown
DependencyType
member. - Pattern that matches an unknown
ElementInfoProviderError
member. - Pattern that matches an unknown
LeaseError
member. - Pattern that matches an unknown
LeaseStatus
member. - Pattern that matches an unknown
ModifyDependencyError
member. - Pattern that matches an unknown
RegisterDependencyTokenError
member. - Pattern that matches an unknown
RequiredLevelError
member. - Pattern that matches an unknown
StatusError
member. - Pattern that matches an unknown
UnregisterDependencyTokenError
member.
Structs§
- A Stream of incoming requests for fuchsia.power.broker/CurrentLevel.
- A Stream of incoming requests for fuchsia.power.broker/ElementControl.
- A Stream of incoming requests for fuchsia.power.broker/ElementInfoProvider.
- 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. - Passed to Topology.AddElement.
- 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.
- A Stream of incoming requests for fuchsia.power.broker/LeaseControl.
- A Stream of incoming requests for fuchsia.power.broker/Lessor.
- 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: - Element Permissions
- 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.
- A Stream of incoming requests for fuchsia.power.broker/RequiredLevel.
- A Stream of incoming requests for fuchsia.power.broker/Status.
- A Stream of incoming requests for fuchsia.power.broker/Topology.
Enums§
- BinaryPowerLevel is a well-known set of PowerLevels with only two states: OFF and ON.
- CurrentLevel and RequiredLevel must both be used by all managed Power Elements as part of the power level handshake with Power Broker:
- An assertive dependency is strongly-fulfilled and orderly-on-termination. An opportunistic dependency is weakly-fulfilled but still orderly-on-termination.
- Provides element-scoped access to an element previously added via Topology.AddElement.
- Provides an interface to retrieve information about PowerElements managed by a component.
- A request for one of the member protocols of ElementInfoProviderService.
- 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.
- Provides element-scoped access to request leases to raise the levels of an element previously added via Topology.AddElement.
- 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.
- 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).
- 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.
Constants§
- PowerLevel name lengths are limited to reduce Inspect space usage
Traits§
Type Aliases§
- 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.
- Used to describe the power level of an element. Could extend this further to support additional types of power levels, such as ACPI.