blob: b2279f68b2ffc234b38dba299e3e9610a0cf3864 [file] [log] [blame]
{
children: [
{
name: "bootstrap",
url: "fuchsia-boot:///#meta/bootstrap.cm",
startup: "eager",
},
{
name: "core",
url: "fuchsia-pkg://fuchsia.com/core#meta/core.cm",
environment: "#core-env",
},
{
name: "startup",
url: "fuchsia-boot:///#meta/startup.cm",
startup: "eager",
},
],
offer: [
{
protocol: [
"fuchsia.appmgr.Startup",
"fuchsia.sessionmanager.Startup",
],
from: "#core",
to: "#startup",
},
{
protocol: "fuchsia.logger.LogSink",
from: "#bootstrap",
to: "#startup",
},
// Capabilities routed from "parent" at the root are either provided by
// bootsvc through component_manager's namespace or by component_manager
// itself as a builtin service
{
directory: "boot",
from: "parent",
to: [
"#bootstrap",
"#core",
],
},
{
protocol: [
"fuchsia.boot.Arguments",
"fuchsia.boot.FactoryItems",
"fuchsia.boot.Items",
"fuchsia.boot.ReadOnlyLog",
"fuchsia.boot.RootResource",
"fuchsia.boot.WriteOnlyLog",
"fuchsia.kernel.DebugResource",
"fuchsia.kernel.HypervisorResource",
"fuchsia.kernel.InfoResource",
"fuchsia.kernel.IoportResource",
"fuchsia.kernel.IrqResource",
"fuchsia.kernel.MmioResource",
"fuchsia.kernel.RootJob",
"fuchsia.kernel.RootJobForInspect",
"fuchsia.kernel.SmcResource",
"fuchsia.kernel.Stats",
"fuchsia.kernel.VmexResource",
"fuchsia.process.Launcher",
],
from: "parent",
to: [
"#bootstrap",
"#core",
],
},
{
protocol: [
"fuchsia.sys2.EventSource",
"fuchsia.time.Maintenance",
],
from: "parent",
to: "#core",
},
{
protocol: [ "fuchsia.sys2.SystemController" ],
from: "parent",
to: "#bootstrap",
},
// ...and the rest of these are services provided by components for each other
{
directory: "dev",
from: "#bootstrap",
to: "#core",
},
{
directory: "durable",
from: "#bootstrap",
to: "#core",
},
{
directory: "factory",
from: "#bootstrap",
to: "#core",
},
{
directory: "minfs",
from: "#bootstrap",
to: "#core",
},
{
directory: "pkgfs",
from: "#bootstrap",
to: "#core",
},
{
directory: "config-data",
from: "#bootstrap",
to: "#core",
},
{
directory: "root-ssl-certificates",
from: "#bootstrap",
to: "#core",
},
{
directory: "system",
from: "#bootstrap",
to: "#core",
},
{
directory: "blob",
from: "#bootstrap",
to: "#core",
},
{
directory: "tmp",
from: "#bootstrap",
to: "#core",
},
// Non-zircon services for svchost
{
protocol: [
"fuchsia.device.manager.Administrator",
"fuchsia.device.manager.BindDebugger",
"fuchsia.device.manager.DebugDumper",
"fuchsia.device.manager.DriverHostDevelopment",
"fuchsia.device.NameProvider",
"fuchsia.diagnostics.ArchiveAccessor",
"fuchsia.diagnostics.FeedbackArchiveAccessor",
"fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
"fuchsia.driver.registrar.DriverRegistrar",
"fuchsia.hardware.power.statecontrol.Admin",
"fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
"fuchsia.hardware.pty.Device",
"fuchsia.kernel.Counter",
"fuchsia.kernel.DebugBroker",
"fuchsia.logger.Log",
"fuchsia.logger.LogSink",
"fuchsia.paver.Paver",
"fuchsia.scheduler.ProfileProvider",
"fuchsia.sysinfo.SysInfo",
"fuchsia.thermal.Controller",
"fuchsia.tracing.kernel.Controller",
"fuchsia.tracing.kernel.Reader",
"fuchsia.update.verify.BlobfsVerifier",
"fuchsia.virtualconsole.SessionManager",
],
from: "#bootstrap",
to: "#core",
},
// Non-zircon services for archivist and svchost
{
protocol: [
"fuchsia.amber.Control",
"fuchsia.cobalt.LoggerFactory",
"fuchsia.diagnostics.internal.DetectController",
"fuchsia.diagnostics.internal.LogStatsController",
"fuchsia.diagnostics.internal.PersistenceController",
"fuchsia.diagnostics.internal.SamplerController",
"fuchsia.exception.Handler",
"fuchsia.feedback.CrashReporter",
"fuchsia.metrics.MetricEventLoggerFactory",
"fuchsia.net.NameLookup",
"fuchsia.net.stack.Log",
"fuchsia.net.stack.Stack",
"fuchsia.netstack.Netstack",
"fuchsia.pkg.PackageResolver",
"fuchsia.pkg.RepositoryManager",
"fuchsia.pkg.rewrite.Engine",
"fuchsia.posix.socket.Provider",
"fuchsia.process.Resolver",
"fuchsia.sys.Environment",
"fuchsia.sys.internal.ComponentEventProvider",
"fuchsia.sys.internal.LogConnector",
"fuchsia.sys.Launcher",
"fuchsia.sys.Loader",
"fuchsia.tracing.controller.Controller",
"fuchsia.tracing.provider.Registry",
],
from: "#core",
to: "#bootstrap",
dependency: "weak_for_migration",
},
// driver_manager needs the v1 hub for the serial console
{
directory: "hub",
from: "#core",
to: "#bootstrap",
dependency: "weak_for_migration",
},
// RCS uses the root hub for service discovery.
{
directory: "hub",
from: "framework",
to: "#core",
},
// Offer events to `bootstrap` for diagnostics usage.
{
event: [
"running",
"started",
"stopped",
],
from: "framework",
to: "#bootstrap",
modes: [ "async" ],
},
{
event: "capability_ready",
from: "parent",
to: "#bootstrap",
filter: { name: "diagnostics" },
modes: [ "async" ],
},
{
event: "capability_requested",
from: "framework",
to: "#bootstrap",
filter: { name: "fuchsia.logger.LogSink" },
},
{
protocol: [ "fuchsia.sys2.EventSource" ],
from: "parent",
to: "#bootstrap",
},
{
protocol: [ "fuchsia.sys2.ComponentResolver" ],
from: "#bootstrap",
to: "#core",
},
],
environments: [
{
name: "core-env",
extends: "realm",
resolvers: [
{
resolver: "base_resolver",
from: "#bootstrap",
scheme: "fuchsia-pkg",
},
],
__stop_timeout_ms: 60000,
},
],
}