blob: 969703371019a15b6f2ed94cb93cae5770366f31 [file] [log] [blame]
// 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: "core",
url: "fuchsia-pkg://fuchsia.com/core#meta/core.cm",
environment: "#core-env",
on_terminate: "reboot",
},
],
offer: [
{
from: "#config",
to: "#core",
config: [
"fuchsia.fonts.FontManifest",
"fuchsia.fonts.VerboseLogging",
"fuchsia.http-client.StopOnIdleTimeoutMillis",
"fuchsia.memory.CaptureOnPressureChange",
"fuchsia.memory.CriticalCaptureDelay",
"fuchsia.memory.ImminentOomCaptureDelay",
"fuchsia.memory.NormalCaptureDelay",
"fuchsia.memory.WarningCaptureDelay",
"fuchsia.power.SuspendEnabled",
"fuchsia.session.AutoLaunch",
"fuchsia.session.SessionUrl",
"fuchsia.wlan.RecoveryEnabled",
"fuchsia.wlan.RecoveryProfile",
"fuchsia.wlan.RoamingProfile",
],
availability: "same_as_target",
},
{
directory: "boot",
from: "parent",
to: "#core",
},
{
protocol: [
"fuchsia.boot.Arguments",
"fuchsia.boot.FactoryItems",
"fuchsia.boot.Items",
"fuchsia.boot.ReadOnlyLog",
"fuchsia.boot.SvcStashProvider",
"fuchsia.boot.WriteOnlyLog",
"fuchsia.kernel.CpuResource",
"fuchsia.kernel.DebuglogResource",
"fuchsia.kernel.DebugResource",
"fuchsia.kernel.EnergyInfoResource",
"fuchsia.kernel.FramebufferResource",
"fuchsia.kernel.HypervisorResource",
"fuchsia.kernel.InfoResource",
"fuchsia.kernel.IommuResource",
"fuchsia.kernel.IoportResource",
"fuchsia.kernel.IrqResource",
"fuchsia.kernel.MexecResource",
"fuchsia.kernel.MmioResource",
"fuchsia.kernel.MsiResource",
"fuchsia.kernel.PowerResource",
"fuchsia.kernel.ProfileResource",
"fuchsia.kernel.RootJob",
"fuchsia.kernel.RootJobForInspect",
"fuchsia.kernel.SmcResource",
"fuchsia.kernel.Stats",
"fuchsia.kernel.VmexResource",
"fuchsia.process.Launcher",
"fuchsia.sys2.CrashIntrospect",
],
from: "parent",
to: "#core",
},
{
event_stream: [
"capability_requested",
"debug_started",
"destroyed",
"discovered",
"started",
"stopped",
],
from: "parent",
to: "#core",
},
{
protocol: [ "fuchsia.time.Maintenance" ],
from: "parent",
to: "#core",
},
{
protocol: [ "fuchsia.memory.attribution.Provider" ],
from: "#elf_runner",
to: "#core",
},
// ...and the rest of these are capabilities provided by components for each other
{
directory: [
"bin",
"blob",
"build-info",
"config-data",
"data",
"dev-builtin",
"dev-class",
"dev-topological",
"factory",
"pkgfs",
"root-ssl-certificates",
"system",
"tmp",
],
from: "#bootstrap",
to: "#core",
},
// Non-zircon services for bootstrap
{
protocol: [
"fuchsia.device.NameProvider",
"fuchsia.diagnostics.ArchiveAccessor",
"fuchsia.diagnostics.FeedbackArchiveAccessor",
"fuchsia.diagnostics.host.ArchiveAccessor",
"fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
"fuchsia.diagnostics.LogSettings",
"fuchsia.diagnostics.LoWPANArchiveAccessor",
"fuchsia.driver.development.Manager",
"fuchsia.driver.registrar.DriverRegistrar",
"fuchsia.fshost.Admin",
"fuchsia.fshost.BlockWatcher",
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
"fuchsia.inspect.InspectSink",
"fuchsia.logger.Log",
"fuchsia.logger.LogSink",
"fuchsia.paver.Paver",
"fuchsia.pkg.PackageCache",
"fuchsia.pkg.PackageResolver-base",
"fuchsia.pkg.RetainedPackages",
"fuchsia.power.button.Monitor",
"fuchsia.power.clientlevel.Connector",
"fuchsia.power.profile.Watcher",
"fuchsia.power.systemmode.ClientConfigurator",
"fuchsia.power.systemmode.Requester",
"fuchsia.scheduler.deprecated.ProfileProvider",
"fuchsia.scheduler.RoleManager",
"fuchsia.space.Manager",
"fuchsia.sysinfo.SysInfo",
"fuchsia.sysmem.Allocator",
"fuchsia.sysmem2.Allocator",
"fuchsia.thermal.ClientStateConnector",
"fuchsia.update.verify.BlobfsVerifier",
],
from: "#bootstrap",
to: "#core",
},
{
protocol: [
"fuchsia.tpm.cr50.Cr50",
"fuchsia.virtualconsole.SessionManager",
],
from: "#bootstrap",
to: "#core",
availability: "optional",
},
{
protocol: [
"fuchsia.hardware.pty.Device",
"fuchsia.kernel.Counter",
"fuchsia.kernel.DebugBroker",
"fuchsia.tracing.kernel.Controller",
"fuchsia.tracing.kernel.Reader",
],
from: "#bootstrap",
to: "#core",
availability: "same_as_target",
},
{
protocol: "fuchsia.sys2.RealmExplorer",
from: "framework",
as: "fuchsia.sys2.RealmExplorer.root",
to: "#core",
},
{
protocol: "fuchsia.sys2.RealmQuery",
from: "framework",
as: "fuchsia.sys2.RealmQuery.root",
to: "#core",
},
{
protocol: "fuchsia.component.Introspector",
from: "framework",
as: "fuchsia.component.Introspector.root",
to: "#core",
},
{
protocol: "fuchsia.sys2.LifecycleController",
from: "framework",
as: "fuchsia.sys2.LifecycleController.root",
to: "#core",
},
{
protocol: "fuchsia.sys2.RouteValidator",
from: "framework",
as: "fuchsia.sys2.RouteValidator.root",
to: "#core",
},
{
service: "fuchsia.hardware.rtc.Service",
from: "#bootstrap",
to: "#core",
},
{
protocol: [
"fuchsia.power.broker.Topology",
"fuchsia.power.suspend.Stats",
"fuchsia.power.system.ActivityGovernor",
],
from: "#bootstrap",
to: "#core",
availability: "optional",
},
{
service: "fuchsia.hardware.cpu.ctrl.Service",
from: "#bootstrap",
to: "#core",
},
],
environments: [
{
name: "core-env",
extends: "realm",
runners: [
{
runner: "elf",
from: "#elf_runner",
},
],
resolvers: [
{
resolver: "base_resolver",
from: "#bootstrap",
scheme: "fuchsia-pkg",
},
],
},
],
}