blob: cb5b3be328df4eeb887d9bfbf83ba8f86e244b6c [file] [log] [blame]
{
children: [
{
name: "device_name_provider",
url: "fuchsia-boot:///#meta/device-name-provider.cm",
},
{
name: "driver_manager",
url: "fuchsia-boot:///#meta/driver_manager.cm",
environment: "#ddk-env",
},
{
name: "fshost",
url: "fuchsia-boot:///#meta/fshost.cm",
environment: "#fshost-env",
},
{
name: "console",
url: "fuchsia-boot:///#meta/console.cm",
},
{
name: "console-launcher",
url: "fuchsia-boot:///#meta/console-launcher.cm",
startup: "eager",
},
{
name: "miscsvc",
url: "fuchsia-boot:///#meta/miscsvc.cm",
},
{
name: "ptysvc",
url: "fuchsia-boot:///#meta/ptysvc.cm",
},
{
name: "pwrbtn-monitor",
url: "fuchsia-boot:///#meta/pwrbtn-monitor.cm",
// pwrbtn-monitor only consumes capabilities, it doesn't provide
// any, so there's no other way to start it.
startup: "eager",
},
{
name: "shutdown_shim",
url: "fuchsia-boot:///#meta/shutdown-shim.cm",
},
{
name: "sysinfo",
url: "fuchsia-boot:///#meta/sysinfo.cm",
},
{
name: "power_manager",
url: "fuchsia-pkg://fuchsia.com/power_manager#meta/power_manager.cm",
},
],
offer: [
{
protocol: [ "/svc/fuchsia.sys.Loader" ],
from: "parent",
to: [ "#console-launcher" ],
},
{
directory: "/boot",
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
"#fshost",
"#miscsvc",
],
rights: [ "rx*" ],
},
{
protocol: [
"/svc/fuchsia.boot.FactoryItems",
"/svc/fuchsia.boot.ReadOnlyLog",
"/svc/fuchsia.boot.RootJob",
"/svc/fuchsia.boot.RootJobForInspect",
],
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
],
},
{
protocol: [ "/svc/fuchsia.power.manager.DriverManagerRegistration" ],
from: "#power_manager",
to: [ "#driver_manager" ],
},
{
protocol: [ "/svc/fuchsia.kernel.Stats" ],
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
"#power_manager",
],
},
{
protocol: "/svc/fuchsia.boot.RootResource",
from: "parent",
to: [
"#console",
"#console-launcher",
"#driver_manager",
"#sysinfo",
],
},
{
protocol: [
"/svc/fuchsia.boot.Arguments",
"/svc/fuchsia.boot.Items",
"/svc/fuchsia.process.Launcher",
],
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
"#fshost",
],
},
{
protocol: [
"/svc/fuchsia.boot.Arguments",
"/svc/fuchsia.boot.WriteOnlyLog",
"/svc/fuchsia.process.Launcher",
],
from: "parent",
to: [ "#miscsvc" ],
},
{
protocol: [
"/svc/fuchsia.boot.Arguments",
"/svc/fuchsia.boot.WriteOnlyLog",
],
from: "parent",
to: [ "#device_name_provider" ],
},
{
protocol: [ "/svc/fuchsia.boot.WriteOnlyLog" ],
from: "parent",
to: [
"#console",
"#console-launcher",
"#driver_manager",
"#fshost",
"#power_manager",
"#ptysvc",
"#pwrbtn-monitor",
"#shutdown_shim",
"#sysinfo",
],
},
{
protocol: [
"/svc/fuchsia.cobalt.LoggerFactory",
"/svc/fuchsia.tracing.provider.Registry",
],
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
"#fshost",
"#power_manager",
],
},
{
protocol: [ "/svc/fuchsia.security.resource.Vmex" ],
from: "parent",
to: [ "#fshost" ],
},
{
protocol: [ "/svc/fuchsia.scheduler.ProfileProvider" ],
from: "#driver_manager",
to: [ "#fshost" ],
},
{
// TODO(fxbug.dev/34633): DEPRECATED. Do not add new dependencies on the fshost
// loader service!
protocol: "/svc/fuchsia.fshost.Loader",
from: "#fshost",
to: [ "#driver_manager" ],
dependency: "weak_for_migration",
},
{
protocol: [
"/svc/fuchsia.device.manager.Administrator",
"/svc/fuchsia.device.manager.BindDebugger",
"/svc/fuchsia.device.manager.DebugDumper",
"/svc/fuchsia.kernel.Counter",
"/svc/fuchsia.kernel.DebugBroker",
"/svc/fuchsia.kernel.MexecBroker",
"/svc/fuchsia.paver.Paver",
"/svc/fuchsia.scheduler.ProfileProvider",
"/svc/fuchsia.sysmem.Allocator",
"/svc/fuchsia.virtualconsole.SessionManager",
],
from: "#driver_manager",
to: [ "#console-launcher" ],
},
{
directory: "/dev",
from: "#driver_manager",
to: [
"#console-launcher",
"#device_name_provider",
"#fshost",
"#miscsvc",
"#sysinfo",
],
},
{
directory: "/minfs",
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
directory: "/pkgfs",
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
directory: "/system-delayed",
from: "#fshost",
to: [ "#driver_manager" ],
dependency: "weak_for_migration",
},
{
directory: "/system",
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
directory: "/blob",
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
directory: "/install",
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
directory: "/durable",
from: "#fshost",
to: [ "#driver_manager" ],
dependency: "weak_for_migration",
},
{
directory: "/factory",
from: "#fshost",
to: [ "#driver_manager" ],
dependency: "weak_for_migration",
},
{
directory: "/tmp",
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
directory: "/bin",
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
directory: "/volume",
from: "#fshost",
to: [ "#miscsvc" ],
},
// Offer the log services to the console
{
protocol: [ "/svc/fuchsia.logger.Log" ],
from: "parent",
to: [ "#console" ],
},
// Offer power_manager's config data to it, so it can read its config
{
directory: "/config/data",
from: "#fshost",
to: [ "#power_manager" ],
subdir: "power_manager",
dependency: "weak_for_migration",
},
// Offer the kernel serial console to the driver_manager
{
protocol: "/svc/fuchsia.hardware.pty.Device",
from: "#console",
as: "/svc/console",
to: [
"#console-launcher",
"#driver_manager",
],
},
{
protocol: "/svc/fuchsia.device.NameProvider",
from: "#device_name_provider",
to: [
"#console-launcher",
"#driver_manager",
],
// TODO: Once svchost is spawned by component manager, we can
// remove this.
dependency: "weak_for_migration",
},
// Offer the misc service to the driver_manager
{
protocol: [
"/svc/fuchsia.kernel.Counter",
"/svc/fuchsia.paver.Paver",
],
from: "#miscsvc",
to: [ "#driver_manager" ],
// TODO: Once netsvc is spawned by component manager, we can remove this.
dependency: "weak_for_migration",
},
// Offer the pty service to the driver_manager
{
protocol: "/svc/fuchsia.hardware.pty.Device",
from: "#ptysvc",
to: [
"#console-launcher",
"#driver_manager",
],
},
// driver_manager needs the v1 hub for the serial console
{
directory: "/hub",
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
],
},
{
protocol: "/svc/fuchsia.sysinfo.SysInfo",
from: "#sysinfo",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
protocol: "/svc/fuchsia.hardware.power.statecontrol.Admin",
from: "#shutdown_shim",
to: [
"#console-launcher",
"#driver_manager",
"#pwrbtn-monitor",
],
},
// Things shutdown_shim and power_manager need
{
protocol: [ "/svc/fuchsia.sys2.SystemController" ],
from: "parent",
to: [
"#power_manager",
"#shutdown_shim",
],
},
{
protocol: [ "/svc/fuchsia.device.manager.SystemStateTransition" ],
from: "#driver_manager",
to: [ "#shutdown_shim" ],
dependency: "weak_for_migration",
},
{
protocol: [ "/svc/fuchsia.hardware.power.statecontrol.Admin" ],
from: "#power_manager",
to: [ "#shutdown_shim" ],
},
{
protocol: [ "/svc/fuchsia.device.manager.Administrator" ],
from: "#driver_manager",
to: [ "#power_manager" ],
dependency: "weak_for_migration",
},
{
protocol: [ "/svc/fuchsia.feedback.CrashReporter" ],
from: "parent",
to: [ "#power_manager" ],
},
// Non-zircon services for svchost
{
protocol: [
"/svc/fuchsia.exception.Handler",
"/svc/fuchsia.logger.Log",
"/svc/fuchsia.net.NameLookup",
"/svc/fuchsia.net.stack.Log",
"/svc/fuchsia.net.stack.Stack",
"/svc/fuchsia.netstack.Netstack",
"/svc/fuchsia.pkg.PackageResolver",
"/svc/fuchsia.pkg.RepositoryManager",
"/svc/fuchsia.pkg.rewrite.Engine",
"/svc/fuchsia.posix.socket.Provider",
"/svc/fuchsia.process.Resolver",
"/svc/fuchsia.sys.Environment",
"/svc/fuchsia.sys.Launcher",
"/svc/fuchsia.tracing.controller.Controller",
"/svc/fuchsia.wlan.service.Wlan",
],
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
],
},
{
protocol: [ "/svc/fuchsia.logger.LogSink" ],
from: "parent",
to: [
"#console-launcher",
"#driver_manager",
"#fshost",
],
},
{
protocol: [
"/svc/fuchsia.fshost.BlockWatcher",
"/svc/fuchsia.fshost.Filesystems",
"/svc/fuchsia.fshost.Registry",
],
from: "#fshost",
to: [
"#console-launcher",
"#driver_manager",
],
dependency: "weak_for_migration",
},
{
protocol: [ "/svc/fuchsia.fshost.Admin" ],
from: "#fshost",
to: [ "#driver_manager" ],
dependency: "weak_for_migration",
},
{
directory: "/dev",
from: "#driver_manager",
as: "/input",
to: [ "#pwrbtn-monitor" ],
subdir: "class/input",
},
{
protocol: [
"/svc/fuchsia.fshost.BlockWatcher",
"/svc/fuchsia.fshost.Registry",
],
from: "#fshost",
to: [ "#miscsvc" ],
},
],
expose: [
// This handle is used by component manager to resolve packages from the
// base package set.
{
directory: "/pkgfs-delayed",
from: "#fshost",
},
{
directory: "/dev",
from: "#driver_manager",
},
{
directory: "config-data",
from: "#fshost",
},
{
directory: "/config/data",
from: "#fshost",
},
{
directory: "/factory",
from: "#fshost",
},
{
directory: "/durable",
from: "#fshost",
},
{
directory: "/minfs",
from: "#fshost",
},
{
directory: "/pkgfs",
from: "#fshost",
},
{
directory: "/system",
from: "#fshost",
},
{
directory: "/blob",
from: "#fshost",
},
{
directory: "/tmp",
from: "#fshost",
},
{
directory: "/bin",
from: "#fshost",
},
{
protocol: "/svc/fuchsia.device.NameProvider",
from: "#device_name_provider",
},
{
protocol: [
"/svc/fuchsia.device.manager.Administrator",
"/svc/fuchsia.device.manager.BindDebugger",
"/svc/fuchsia.device.manager.DebugDumper",
"/svc/fuchsia.kernel.DebugBroker",
"/svc/fuchsia.scheduler.ProfileProvider",
"/svc/fuchsia.tracing.kernel.Controller",
"/svc/fuchsia.tracing.kernel.Reader",
"/svc/fuchsia.virtualconsole.SessionManager",
],
from: "#driver_manager",
},
{
protocol: "/svc/fuchsia.hardware.power.statecontrol.Admin",
from: "#shutdown_shim",
},
{
protocol: "/svc/fuchsia.hardware.pty.Device",
from: "#ptysvc",
},
{
protocol: [
"/svc/fuchsia.kernel.Counter",
"/svc/fuchsia.paver.Paver",
],
from: "#miscsvc",
},
{
protocol: "/svc/fuchsia.sysinfo.SysInfo",
from: "#sysinfo",
},
{
protocol: [
"/svc/fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
"/svc/fuchsia.thermal.Controller",
],
from: "#power_manager",
},
],
environments: [
{
name: "fshost-env",
extends: "realm",
// 20 minutes
__stop_timeout_ms: 1200000,
},
{
name: "ddk-env",
extends: "realm",
// 1 minute
__stop_timeout_ms: 60000,
},
],
}