| // Copyright 2023 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. | |
| { | |
| include: [ | |
| "syslog/client.shard.cml", | |
| "trace/client.shard.cml", | |
| ], | |
| program: { | |
| runner: "elf", | |
| binary: "bin/cpu_profiler", | |
| }, | |
| children: [ | |
| { | |
| name: "profiler_session_manager", | |
| url: "profiler_session_manager#meta/profiler_session_manager.cm", | |
| startup: "eager", | |
| }, | |
| ], | |
| capabilities: [ | |
| { | |
| protocol: [ | |
| "fuchsia.cpu.profiler.Session", | |
| "fuchsia.profiling.Controller", | |
| ], | |
| }, | |
| ], | |
| use: [ | |
| { | |
| protocol: [ | |
| "fuchsia.kernel.RootJob", | |
| "fuchsia.kernel.SamplingResource", | |
| "fuchsia.test.manager.SuiteRunner", | |
| ], | |
| }, | |
| { | |
| protocol: [ | |
| "fuchsia.sys2.LifecycleController", | |
| "fuchsia.sys2.LifecycleController.root", | |
| "fuchsia.sys2.RealmQuery.root", | |
| ], | |
| // Optional, since integration tests aren't able to provide this capability | |
| availability: "optional", | |
| }, | |
| { | |
| event_stream: [ "debug_started" ], | |
| from: "parent", | |
| }, | |
| ], | |
| offer: [ | |
| { | |
| protocol: [ | |
| "fuchsia.cpu.profiler.Session", | |
| "fuchsia.profiling.Controller", | |
| ], | |
| from: "self", | |
| to: [ "#profiler_session_manager" ], | |
| }, | |
| { | |
| storage: "cache", | |
| from: "parent", | |
| to: "#profiler_session_manager", | |
| }, | |
| ], | |
| expose: [ | |
| { | |
| protocol: "fuchsia.cpu.profiler.Session", | |
| from: "self", | |
| }, | |
| { | |
| protocol: "fuchsia.cpu.profiler.SessionManager", | |
| from: "#profiler_session_manager", | |
| }, | |
| ], | |
| } |