| // Copyright 2024 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| { |
| children: [ |
| { |
| name: "power_manager", |
| url: "fuchsia-boot:///power-manager#meta/power-manager.cm", |
| }, |
| { |
| name: "power-broker", |
| url: "fuchsia-boot:///power-broker#meta/power-broker.cm", |
| }, |
| { |
| name: "cpu_manager", |
| url: "fuchsia-boot:///cpu-manager#meta/cpu-manager.cm", |
| on_terminate: "reboot", |
| }, |
| ], |
| offer: [ |
| { |
| protocol: "fuchsia.tracing.provider.Registry", |
| from: "parent", |
| to: [ |
| "#cpu_manager", |
| "#power_manager", |
| ], |
| availability: "optional", |
| }, |
| { |
| directory: "boot", |
| from: "parent", |
| as: "config", |
| to: [ "#power_manager" ], |
| rights: [ "r*" ], |
| subdir: "config/power_manager", |
| }, |
| { |
| directory: "boot", |
| from: "parent", |
| as: "config", |
| to: [ "#cpu_manager" ], |
| rights: [ "r*" ], |
| subdir: "config/cpu_manager", |
| }, |
| { |
| protocol: [ "fuchsia.thermal.ClientStateConnector" ], |
| from: "#power_manager", |
| to: "#cpu_manager", |
| }, |
| { |
| protocol: [ "fuchsia.metrics.MetricEventLoggerFactory" ], |
| from: "parent", |
| to: "#power_manager", |
| }, |
| { |
| protocol: [ |
| "fuchsia.boot.WriteOnlyLog", |
| "fuchsia.kernel.CpuResource", |
| ], |
| from: "parent", |
| to: "#power_manager", |
| }, |
| { |
| protocol: [ "fuchsia.component.Binder" ], |
| from: "#cpu_manager", |
| to: "#power_manager", |
| |
| // cpu_manager uses fuchsia.thermal.ClientStateConnector from power_manage |
| // Weak to resolve dependency cycles |
| dependency: "weak", |
| }, |
| { |
| protocol: [ |
| "fuchsia.kernel.CpuResource", |
| "fuchsia.kernel.Stats", |
| ], |
| from: "parent", |
| to: [ "#cpu_manager" ], |
| }, |
| { |
| service: [ "fuchsia.hardware.cpu.ctrl.Service" ], |
| from: "#boot-drivers", |
| to: [ "#cpu_manager" ], |
| }, |
| { |
| directory: "dev-topological", |
| from: "#devfs-with-pkg", |
| to: [ |
| "#cpu_manager", |
| "#power_manager", |
| ], |
| dependency: "weak", |
| }, |
| { |
| protocol: [ "fuchsia.sys2.SystemController" ], |
| from: "parent", |
| to: "#power_manager", |
| }, |
| { |
| protocol: [ |
| "fuchsia.feedback.CrashReporter", |
| "fuchsia.kernel.Stats", |
| "fuchsia.ui.activity.Provider", |
| ], |
| from: "parent", |
| to: "#power_manager", |
| }, |
| { |
| protocol: "fuchsia.settings.Input", |
| from: "parent", |
| to: "#power_manager", |
| availability: "optional", |
| }, |
| { |
| protocol: [ |
| "fuchsia.inspect.InspectSink", |
| "fuchsia.logger.LogSink", |
| ], |
| from: "#archivist", |
| to: [ |
| "#cpu_manager", |
| "#power-broker", |
| "#power_manager", |
| ], |
| }, |
| ], |
| expose: [ |
| { |
| protocol: [ |
| "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister", |
| "fuchsia.power.clientlevel.Connector", |
| "fuchsia.power.profile.Watcher", |
| "fuchsia.power.systemmode.ClientConfigurator", |
| "fuchsia.power.systemmode.Requester", |
| "fuchsia.thermal.ClientStateConnector", |
| ], |
| from: "#power_manager", |
| }, |
| { |
| protocol: [ "fuchsia.power.broker.Topology" ], |
| from: "#power-broker", |
| }, |
| { |
| protocol: [ |
| "fuchsia.power.suspend.Stats", |
| "fuchsia.power.system.ActivityGovernor", |
| ], |
| from: "#system-activity-governor", |
| source_availability: "unknown", |
| }, |
| ], |
| } |