class PowerManager

Defined at line 30 of file ../../src/devices/bin/driver_manager/power/power_manager.h

Public Methods

void PowerManager (async_dispatcher_t * dispatcher, fidl::ClientEnd<fuchsia_power_broker::Topology> power_topology, std::optional<fidl::ClientEnd<fuchsia_power_system::CpuElementManager>> cpu_element_mgr, bool wait_for_storage_token)

Defined at line 50 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void FetchCpuToken ()

Starts the CPU token fetch process if CPU element manager is available.

Must be called after initialization.

Defined at line 65 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void PublishCpuElementManager (component::OutgoingDirectory & outgoing)

Binds the CPU element manager to the outgoing directory.

Defined at line 83 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

fidl::Client<fuchsia_power_broker::Topology> & power_topology ()

Defined at line 97 of file ../../src/devices/bin/driver_manager/power/power_manager.h

bool SuspendEnabled ()

Defined at line 98 of file ../../src/devices/bin/driver_manager/power/power_manager.h

void AddCpuExecutionStateDependency (fuchsia_power_broker::DependencyToken dependency_token, fuchsia_power_broker::PowerLevel power_level)

Registers the execution state dependency of all drivers with SAG.

Defined at line 329 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

std::optional<fuchsia_power_broker::DependencyToken> StorageElementToken ()

Get a duplicate of the storage element token.

Defined at line 235 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void CreateStoragePowerElement (fuchsia_power_broker::DependencyToken driver_token, fuchsia_power_broker::PowerLevel power_level, fit::callback<void ()> post_creation)

Creates the storage power element under the given topology.

Calls |post_creation| callback once the dependency token is registered.

Defined at line 89 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

std::optional<fuchsia_power_broker::DependencyToken> GetCpuToken (fit::callback<void ()> callback_if_not_available)

Checks if CPU token is available, or registers a callback.

Returns a duplicate of CPU token if available, std::nullopt otherwise.

Defined at line 176 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

std::optional<fuchsia_power_broker::DependencyToken> GetStorageToken (fit::callback<void ()> callback_if_not_available)

Checks if Storage token is available, or registers a callback.

Returns a duplicate of Storage token if available, std::nullopt otherwise.

Defined at line 191 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

std::optional<fuchsia_power_broker::DependencyToken> GetStorageTokenIfAvailable ()

Checks if Storage token is available.

Returns a duplicate of Storage token if available, std::nullopt otherwise.

Defined at line 207 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

fuchsia_power_broker::DependencyToken GetCpuTokenOrAssert ()

Get a copy of the CPU token (panics if not available).

Defined at line 218 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

fuchsia_power_broker::DependencyToken GetStorageTokenOrAssert ()

Get a copy of the Storage token (panics if not available).

Defined at line 226 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void OnBootupComplete (std::shared_ptr<Node> root_node)

Defined at line 349 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void OnNodeBound (std::shared_ptr<const Node> node)

Defined at line 367 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void CreateAllDriversPowerElement (std::shared_ptr<Node> root_node)

Defined at line 373 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void LeaseAllDrivers (const std::shared_ptr<Node> & root_node, fit::callback<void ()> callback)

Defined at line 590 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void CreatePowerElement (std::optional<fidl::ClientEnd<fuchsia_power_broker::Topology>> topology_client, std::string_view name, fuchsia_power_broker::DependencyToken element_token, std::vector<fuchsia_power_broker::DependencyToken> deps, fidl::ServerEnd<fuchsia_power_broker::ElementControl> control, fidl::ClientEnd<fuchsia_power_broker::ElementRunner> runner, fidl::ServerEnd<fuchsia_power_broker::Lessor> lessor, Collection for_collection, std::optional<fuchsia_power_broker::DependencyToken> cpu_token_override, std::optional<zx::eventpair> initial_lease_token, bool is_hermetic_power_test, fit::callback<void (zx::result<bool>)> cb)

Defined at line 470 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void SetLevel (SetLevelRequestView request, SetLevelCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_power_broker::ElementRunner>

Defined at line 244 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_power_broker::ElementRunner> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 248 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void GetCpuDependencyToken (GetCpuDependencyTokenCompleter::Sync & completer)

fidl::WireServer

<fuchsia

_power_system::CpuElementManager>

Defined at line 265 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void AddExecutionStateDependency (AddExecutionStateDependencyRequestView request, AddExecutionStateDependencyCompleter::Sync & completer)

Defined at line 306 of file ../../src/devices/bin/driver_manager/power/power_manager.cc

void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_power_system::CpuElementManager> metadata, fidl::UnknownMethodCompleter::Sync & completer)

Defined at line 325 of file ../../src/devices/bin/driver_manager/power/power_manager.cc