| { | |
| children: [ | |
| { | |
| name: "bootstrap", | |
| url: "fuchsia-boot:///#meta/bootstrap.cm", | |
| startup: "eager", | |
| }, | |
| { | |
| name: "core", | |
| url: "fuchsia-pkg://fuchsia.com/core#meta/core.cm", | |
| }, | |
| { | |
| name: "startup", | |
| url: "fuchsia-boot:///#meta/startup.cm", | |
| startup: "eager", | |
| }, | |
| ], | |
| offer: [ | |
| { | |
| protocol: [ "fuchsia.appmgr.Startup" ], | |
| from: "#core", | |
| 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", | |
| ], | |
| rights: [ "rx*" ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.boot.Arguments", | |
| "/svc/fuchsia.boot.FactoryItems", | |
| "/svc/fuchsia.boot.Items", | |
| "/svc/fuchsia.boot.ReadOnlyLog", | |
| "/svc/fuchsia.boot.RootResource", | |
| "/svc/fuchsia.boot.WriteOnlyLog", | |
| "/svc/fuchsia.kernel.MmioResource", | |
| "/svc/fuchsia.kernel.RootJob", | |
| "/svc/fuchsia.kernel.RootJobForInspect", | |
| "/svc/fuchsia.kernel.Stats", | |
| "/svc/fuchsia.process.Launcher", | |
| "/svc/fuchsia.security.resource.Vmex", | |
| ], | |
| from: "parent", | |
| to: [ | |
| "#bootstrap", | |
| "#core", | |
| ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.sys2.BlockingEventSource", | |
| "/svc/fuchsia.sys2.EventSource", | |
| "/svc/fuchsia.time.Maintenance", | |
| ], | |
| from: "parent", | |
| to: [ "#core" ], | |
| }, | |
| { | |
| protocol: [ "/svc/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: "/config/data", | |
| from: "#bootstrap", | |
| to: [ "#core" ], | |
| }, | |
| { | |
| directory: "/system", | |
| from: "#bootstrap", | |
| to: [ "#core" ], | |
| }, | |
| { | |
| directory: "/blob", | |
| from: "#bootstrap", | |
| to: [ "#core" ], | |
| }, | |
| { | |
| directory: "/tmp", | |
| from: "#bootstrap", | |
| to: [ "#core" ], | |
| }, | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.device.manager.Administrator", | |
| "/svc/fuchsia.device.manager.BindDebugger", | |
| "/svc/fuchsia.device.manager.DebugDumper", | |
| "/svc/fuchsia.device.NameProvider", | |
| "/svc/fuchsia.hardware.power.statecontrol.Admin", | |
| "/svc/fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister", | |
| "/svc/fuchsia.hardware.pty.Device", | |
| "/svc/fuchsia.kernel.Counter", | |
| "/svc/fuchsia.kernel.DebugBroker", | |
| "/svc/fuchsia.paver.Paver", | |
| "/svc/fuchsia.scheduler.ProfileProvider", | |
| "/svc/fuchsia.sysinfo.SysInfo", | |
| "/svc/fuchsia.thermal.Controller", | |
| "/svc/fuchsia.tracing.kernel.Controller", | |
| "/svc/fuchsia.tracing.kernel.Reader", | |
| "/svc/fuchsia.virtualconsole.SessionManager", | |
| ], | |
| from: "#bootstrap", | |
| to: [ "#core" ], | |
| }, | |
| // Non-zircon services for svchost | |
| { | |
| protocol: [ | |
| "/svc/fuchsia.amber.Control", | |
| "/svc/fuchsia.cobalt.LoggerFactory", | |
| "/svc/fuchsia.exception.Handler", | |
| "/svc/fuchsia.feedback.CrashReporter", | |
| "/svc/fuchsia.logger.Log", | |
| "/svc/fuchsia.logger.LogSink", | |
| "/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.sys.Loader", | |
| "/svc/fuchsia.tracing.controller.Controller", | |
| "/svc/fuchsia.tracing.provider.Registry", | |
| "/svc/fuchsia.wlan.service.Wlan", | |
| ], | |
| 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 `core` for diagnostics usage. | |
| { | |
| event: [ | |
| "running", | |
| "started", | |
| "stopped", | |
| ], | |
| from: "framework", | |
| to: [ "#core" ], | |
| }, | |
| { | |
| event: "capability_ready", | |
| from: "framework", | |
| to: [ "#core" ], | |
| filter: { path: "/diagnostics" }, | |
| }, | |
| ], | |
| expose: [ | |
| // This handle is used by component manager to resolve packages from the | |
| // base package set. | |
| { | |
| directory: "/pkgfs-delayed", | |
| from: "#bootstrap", | |
| as: "/pkgfs", | |
| }, | |
| ], | |
| } |