// 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.
{
    collections: [
        {
            name: "pkg-drivers",
            environment: "#pkg-driver-env",
            durability: "single_run",
            allowed_offers: "static_and_dynamic",
            allow_long_names: true,
        },
    ],
    offer: [
        {
            from: "parent",
            to: "#pkg-drivers",
            config: [ "fuchsia.power.SuspendEnabled" ],
        },
        {
            protocol: "fuchsia.tracing.provider.Registry",
            from: "parent",
            to: "#pkg-drivers",
            availability: "optional",
        },
        {
            protocol: "fuchsia.kernel.InfoResource",
            from: "parent",
            to: "#pkg-drivers",
        },
        {
            protocol: "fuchsia.boot.Arguments",
            from: "parent",
            to: "#pkg-drivers",
        },
        {
            protocol: [ "fuchsia.scheduler.RoleManager" ],
            from: "#role_manager",
            to: "#pkg-drivers",
        },
        {
            protocol: [ "fuchsia.driver.framework.CompositeNodeManager" ],
            from: "#driver_manager",
            to: "#pkg-drivers",
        },
        {
            protocol: [
                "fuchsia.sysmem.Allocator",
                "fuchsia.sysmem2.Allocator",
            ],
            from: "#sysmem",
            to: "#pkg-drivers",

            // This must be weak because sysmem needs sysmem from devfs, which creates
            // a cycle. sysmem can be made into a non-driver to fix this.
            dependency: "weak",
            source_availability: "unknown",
        },
        {
            protocol: [ "fuchsia.device.manager.SystemStateTransition" ],
            from: "#shutdown_shim",
            to: "#pkg-drivers",
            source_availability: "unknown",
        },
        {
            protocol: [
                "fuchsia.inspect.InspectSink",
                "fuchsia.logger.LogSink",
            ],
            from: "#archivist",
            to: "#pkg-drivers",
        },
        {
            protocol: [ "fuchsia.power.system.ActivityGovernor" ],
            from: "#system-activity-governor",
            to: "#pkg-drivers",

            // system-activity-governor depends on the suspend HAL but not all
            // drivers depend on system-activity-governor.
            // Weak to resolve dependency cycles.
            dependency: "weak",
            source_availability: "unknown",
        },
        {
            protocol: [ "fuchsia.power.broker.Topology" ],
            from: "#power-broker",
            to: "#pkg-drivers",
        },
    ],
    expose: [
        {
            service: "fuchsia.hardware.rtc.Service",
            from: "#pkg-drivers",
        },
    ],
    environments: [
        {
            name: "pkg-driver-env",
            extends: "none",
            runners: [
                {
                    runner: "driver",
                    from: "#driver_manager",
                },
            ],
            resolvers: [
                {
                    resolver: "boot_resolver",
                    from: "parent",
                    scheme: "fuchsia-boot",
                },
                {
                    resolver: "base_resolver",
                    from: "#pkg-cache",
                    scheme: "fuchsia-pkg",
                },
            ],

            // 1 second
            __stop_timeout_ms: 1000,
        },
    ],
}
