// Copyright 2022 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: "bootstrap",
            url: "fuchsia-boot:///bootstrap#meta/bootstrap.cm",
            startup: "eager",
            environment: "#elf-env",
        },
        {
            name: "elf_runner",
            url: "fuchsia-builtin://#elf_runner.cm",
        },
        {
            name: "config",
            url: "fuchsia-boot:///config#meta/config.cm",
        },
    ],
    offer: [
        {
            config: [
                "fuchsia.diagnostics.AllowSerialLogs",
                "fuchsia.diagnostics.BindServices",
                "fuchsia.diagnostics.ComponentInitialInterests",
                "fuchsia.diagnostics.DenySerialLogs",
                "fuchsia.diagnostics.ExceptionHandlerAvailable",
                "fuchsia.diagnostics.LogsMaxCachedOriginalBytes",
                "fuchsia.diagnostics.MaximumConcurrentSnapshotsPerReader",
                "fuchsia.driver.BaseDrivers",
                "fuchsia.driver.BindEager",
                "fuchsia.driver.BootDrivers",
                "fuchsia.driver.DelayFallbackUntilBaseDriversIndexed",
                "fuchsia.driver.DisabledDrivers",
                "fuchsia.driver.DriverLoadFuzzerMaxDelayMs",
                "fuchsia.driver.EnableDriverLoadFuzzer",
                "fuchsia.driver.EnableEphemeralDrivers",
                "fuchsia.driver.manager.DelayFallbackUntilBaseDriversLoaded",
                "fuchsia.driver.manager.EnableTestShutdownDelays",
                "fuchsia.driver.manager.RootDriver",
                "fuchsia.driver.UseHardwareIommu",
                "fuchsia.fshost.Blobfs",
                "fuchsia.fshost.BlobfsInitialInodes",
                "fuchsia.fshost.BlobfsUseDeprecatedPaddedFormat",
                "fuchsia.fshost.BlobMaxBytes",
                "fuchsia.fshost.CheckFilesystems",
                "fuchsia.fshost.Data",
                "fuchsia.fshost.DataFilesystemFormat",
                "fuchsia.fshost.DataMaxBytes",
                "fuchsia.fshost.DisableBlockWatcher",
                "fuchsia.fshost.Factory",
                "fuchsia.fshost.FormatDataOnCorruption",
                "fuchsia.fshost.Fvm",
                "fuchsia.fshost.FvmSliceSize",
                "fuchsia.fshost.FxfsBlob",
                "fuchsia.fshost.FxfsCryptUrl",
                "fuchsia.fshost.Gpt",
                "fuchsia.fshost.GptAll",
                "fuchsia.fshost.InlineCrypto",
                "fuchsia.fshost.Mbr",
                "fuchsia.fshost.MergeSuperAndUserdata",
                "fuchsia.fshost.NoZxcrypt",
                "fuchsia.fshost.ProvisionFxfs",
                "fuchsia.fshost.RamdiskImage",
                "fuchsia.fshost.StarnixVolumeName",
                "fuchsia.fshost.StorageHost",
                "fuchsia.fshost.UseDiskMigration",
                "fuchsia.fshost.WatchDeprecatedV1Drivers",
                "fuchsia.pkgcache.AllPackagesExecutable",
                "fuchsia.pkgcache.EnableUpgradablePackages",
                "fuchsia.pkgcache.UseSystemImage",
                "fuchsia.platform.bus.SoftwareDeviceIds",
                "fuchsia.platform.bus.SoftwareDeviceNames",
                "fuchsia.power.cpu.BoostEnabled",
                "fuchsia.power.RuntimeProcessorPowerManagementEnabled",
                "fuchsia.power.StoragePowerManagementEnabled",
                "fuchsia.power.SuspendEnabled",
                "fuchsia.power.UseSuspender",
                "fuchsia.power.WaitForSuspendingToken",
                "fuchsia.starnix.mcu.ExpectReady",
                "fuchsia.storage.SdmmcCommandQueueingEnabled",
                "fuchsia.ui.EnableButtonBatonPassing",
                "fuchsia.ui.EnableMouseBatonPassing",
                "fuchsia.ui.EnableTouchBatonPassing",
                "fuchsia.usb.PeripheralConfig.Functions",
            ],
            from: "#config",
            to: "#bootstrap",
        },
        {
            config: [
                "fuchsia.blobfs.CacheEvictionPolicy",
                "fuchsia.blobfs.WriteCompressionAlgorithm",
                "fuchsia.driver.index.StopOnIdleTimeoutMillis",
                "fuchsia.fshost.DisableAutomount",
                "fuchsia.network.PrimaryInterface",
                "fuchsia.sysmem.ContiguousGuardPagesUnused",
                "fuchsia.sysmem.FixedContiguousMemorySize",
                "fuchsia.sysmem.FixedProtectedMemorySize",
                "fuchsia.sysmem.PercentContiguousMemorySize",
                "fuchsia.sysmem.PercentProtectedMemorySize",
                "fuchsia.ui.VisualDebuggingLevel",
                "fuchsia.virtcon.BootAnimation",
                "fuchsia.virtcon.BufferCount",
                "fuchsia.virtcon.ColorScheme",
                "fuchsia.virtcon.Disable",
                "fuchsia.virtcon.DisplayRotation",
                "fuchsia.virtcon.DotsPerInch",
                "fuchsia.virtcon.FontSize",
                "fuchsia.virtcon.KeepLogVisible",
                "fuchsia.virtcon.KeyMap",
                "fuchsia.virtcon.KeyRepeat",
                "fuchsia.virtcon.RoundedCorners",
                "fuchsia.virtcon.ScrollbackRows",
                "fuchsia.virtcon.ShowLogo",
            ],
            from: "#config",
            to: "#bootstrap",
            availability: "optional",
        },
        {
            protocol: "fuchsia.process.Launcher",
            from: "parent",
            to: "#elf_runner",
        },

        // 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",
        },
        {
            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.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.SamplingResource",
                "fuchsia.kernel.SmcResource",
                "fuchsia.kernel.Stats",
                "fuchsia.kernel.TracingResource",
                "fuchsia.kernel.VmexResource",
                "fuchsia.pkg.PackageResolver-boot",
                "fuchsia.process.Launcher",
                "fuchsia.sys2.CrashIntrospect",
                "fuchsia.update.verify.HealthVerification",
            ],
            from: "parent",
            to: "#bootstrap",
        },
        {
            event_stream: [
                "capability_requested",
                "debug_started",
                "destroyed",
                "started",
                "stopped",
            ],
            from: "parent",
            to: "#bootstrap",
        },
        {
            protocol: [
                "fuchsia.net.name.Lookup",
                "fuchsia.posix.socket.Provider",
            ],
            from: "#core",
            to: "#bootstrap",
            dependency: "weak",
            source_availability: "unknown",
        },
        {
            protocol: [
                "fuchsia.component.resolution.Resolver",
                "fuchsia.sys2.SystemController",
            ],
            from: "parent",
            to: "#bootstrap",
        },

        // Non-zircon services for archivist, pwrbtn-monitor, sysmem and console.
        {
            protocol: [
                "fuchsia.component.PersistenceBinder",
                "fuchsia.component.resolution.Resolver-full",
                "fuchsia.component.SamplerBinder",
                "fuchsia.exception.Handler",
                "fuchsia.feedback.ComponentDataRegister",
                "fuchsia.feedback.CrashReporter",
                "fuchsia.feedback.DataProvider",
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.pkg.PackageResolver",
                "fuchsia.pkg.RepositoryManager",
                "fuchsia.pkg.rewrite.Engine",
                "fuchsia.settings.Input",
                "fuchsia.ui.activity.Provider",
                "fuchsia.update.CommitStatusProvider",
            ],
            from: "#core",
            to: "#bootstrap",
            dependency: "weak",
            source_availability: "unknown",
        },
        {
            protocol: [ "fuchsia.memorypressure.Provider" ],
            from: "#core",
            to: "#bootstrap",
            dependency: "weak",
            availability: "optional",
            source_availability: "unknown",
        },

        // TODO(https://fxbug.dev/324494668): remove this when Netstack2 is gone.
        {
            directory: "netstack-diagnostics",
            from: "#core",
            to: "#bootstrap",
            dependency: "weak",
            availability: "optional",
            source_availability: "unknown",
        },

        // Trace manager may be excluded from builds where tracing is not
        // expected to be used for observability, such as in the bringup
        // product and non-eng builds of any product.
        {
            protocol: [
                "fuchsia.tracing.controller.Provisioner",
                "fuchsia.tracing.provider.Registry",
            ],
            from: "#core",
            to: "#bootstrap",
            dependency: "weak",
            availability: "optional",
            source_availability: "unknown",
        },
        {
            protocol: [
                "fuchsia.virtualization.DebianGuestManager",
                "fuchsia.virtualization.LinuxManager",
                "fuchsia.virtualization.TerminaGuestManager",
                "fuchsia.virtualization.ZirconGuestManager",
            ],
            from: "#core",
            to: "#bootstrap",
            dependency: "weak",
            availability: "optional",
            source_availability: "unknown",
        },
        {
            protocol: [ "fuchsia.power.topology.test.SystemActivityControl" ],
            from: "#core",
            to: "#bootstrap",
            dependency: "weak",
            availability: "optional",
            source_availability: "unknown",
        },
        {
            protocol: "fuchsia.sys2.RealmExplorer",
            from: "framework",
            as: "fuchsia.sys2.RealmExplorer.root",
            to: "#bootstrap",
        },
        {
            protocol: "fuchsia.sys2.RealmQuery",
            from: "framework",
            as: "fuchsia.sys2.RealmQuery.root",
            to: "#bootstrap",
        },
        {
            protocol: "fuchsia.component.Introspector",
            from: "framework",
            as: "fuchsia.component.Introspector.root",
            to: "#bootstrap",
        },
        {
            protocol: "fuchsia.sys2.LifecycleController",
            from: "framework",
            as: "fuchsia.sys2.LifecycleController.root",
            to: "#bootstrap",
        },
        {
            protocol: "fuchsia.sys2.RouteValidator",
            from: "framework",
            as: "fuchsia.sys2.RouteValidator.root",
            to: "#bootstrap",
        },
        {
            protocol: "fuchsia.sys2.ConfigOverride",
            from: "framework",
            as: "fuchsia.sys2.ConfigOverride.root",
            to: "#bootstrap",
        },
        {
            protocol: "fuchsia.process.Launcher",
            from: "parent",
            to: "self/toolbox-root",
            target_availability: "unknown",
        },
        {
            directory: "boot",
            from: "parent",
            to: "self/toolbox-root-directories",
            target_availability: "unknown",
        },
        {
            protocol: "fuchsia.sys2.RealmExplorer",
            from: "framework",
            as: "fuchsia.sys2.RealmExplorer.root",
            to: "self/toolbox-root",
            target_availability: "unknown",
        },
        {
            protocol: "fuchsia.sys2.ConfigOverride",
            from: "framework",
            as: "fuchsia.sys2.ConfigOverride.root",
            to: "self/toolbox-root",
            target_availability: "unknown",
        },
        {
            protocol: "fuchsia.sys2.RealmQuery",
            from: "framework",
            as: "fuchsia.sys2.RealmQuery.root",
            to: "self/toolbox-root",
            target_availability: "unknown",
        },
        {
            protocol: "fuchsia.sys2.LifecycleController",
            from: "framework",
            as: "fuchsia.sys2.LifecycleController.root",
            to: "self/toolbox-root",
            target_availability: "unknown",
        },
        {
            protocol: "fuchsia.sys2.RouteValidator",
            from: "framework",
            as: "fuchsia.sys2.RouteValidator.root",
            to: "self/toolbox-root",
            target_availability: "unknown",
        },
        {
            runner: [
                "builtin_devfs",
                "builtin_shutdown_shim",
            ],
            from: "parent",
            to: "#bootstrap",
        },

        // Offer boot resolver to `bootstrap` for driver usage.
        {
            resolver: "boot_resolver",
            from: "parent",
            to: "#bootstrap",
        },
        {
            dictionary: "toolbox",
            from: "#bootstrap",
            as: "toolbox-bootstrap",
            to: "#toolbox",
            target_availability: "unknown",
        },
        {
            dictionary: "toolbox-directories",
            from: "#bootstrap",
            as: "toolbox-bootstrap-directories",
            to: "#toolbox",
            target_availability: "unknown",
        },
        {
            dictionary: "diagnostics",
            from: "#bootstrap",
            to: "#toolbox",
            target_availability: "unknown",
        },
        {
            runner: "elf",
            from: "#elf_runner",
            to: "#toolbox",
            target_availability: "unknown",
        },
        {
            protocol: [
                "fuchsia.boot.Arguments",
                "fuchsia.boot.FactoryItems",
                "fuchsia.boot.Items",
                "fuchsia.boot.ReadOnlyLog",
                "fuchsia.boot.WriteOnlyLog",
                "fuchsia.kernel.DebugResource",
                "fuchsia.kernel.HypervisorResource",
                "fuchsia.kernel.InfoResource",
                "fuchsia.kernel.IoportResource",
                "fuchsia.kernel.IrqResource",
                "fuchsia.kernel.MmioResource",
                "fuchsia.kernel.PowerResource",
                "fuchsia.kernel.ProfileResource",
                "fuchsia.kernel.RootJob",
                "fuchsia.kernel.RootJobForInspect",
                "fuchsia.kernel.SmcResource",
                "fuchsia.kernel.Stats",
                "fuchsia.kernel.TracingResource",
                "fuchsia.kernel.VmexResource",
                "fuchsia.sys2.CrashIntrospect",
                "fuchsia.time.Maintenance",
            ],
            from: "parent",
            to: "self/toolbox-root",
            target_availability: "unknown",
        },
    ],
    expose: [
        // For reboot_on_terminate
        {
            protocol: [
                "fuchsia.hardware.power.statecontrol.Admin",
                "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
            ],
            from: "#bootstrap",
        },
    ],
    environments: [
        {
            name: "elf-env",
            extends: "realm",
            runners: [
                {
                    runner: "elf",
                    from: "#elf_runner",
                },
            ],
        },
    ],
}
