| // Copyright 2026 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. | |
| { | |
| include: [ | |
| "//src/devices/driver-lab/meta/debug.shard.cml", | |
| "driver/platform-device.shard.cml", | |
| "driver_component/driver.shard.cml", | |
| "inspect/client.shard.cml", | |
| "syslog/client.shard.cml", | |
| ], | |
| program: { | |
| runner: "driver", | |
| binary: "driver/lab_proxy.so", | |
| bind: "meta/bind/lab_proxy.bindbc", | |
| }, | |
| use: [ | |
| { | |
| service: [ | |
| "fuchsia.hardware.clock.Service", | |
| "fuchsia.hardware.gpio.Service", | |
| "fuchsia.hardware.i2c.Service", | |
| "fuchsia.hardware.reset.Service", | |
| "fuchsia.hardware.serial.Service", | |
| "fuchsia.hardware.spi.Service", | |
| ], | |
| }, | |
| { | |
| // Whether the proxy is enabled. If false, sessions are rejected. | |
| config: "fuchsia.driver.lab.Enabled", | |
| key: "enabled", | |
| type: "bool", | |
| availability: "transitional", | |
| default: true, | |
| }, | |
| { | |
| // Capacity of the audit ring buffer (<= 1024). | |
| config: "fuchsia.driver.lab.AuditCapacity", | |
| key: "audit_capacity", | |
| type: "uint32", | |
| availability: "transitional", | |
| default: 1024, | |
| }, | |
| { | |
| // Maximum items allowed in a single snapshot (<= 64). | |
| config: "fuchsia.driver.lab.MaxSnapshotItems", | |
| key: "max_snapshot_items", | |
| type: "uint32", | |
| availability: "transitional", | |
| default: 64, | |
| }, | |
| { | |
| // Maximum items allowed in a single sequence (<= 64). | |
| config: "fuchsia.driver.lab.MaxSequenceItems", | |
| key: "max_sequence_items", | |
| type: "uint32", | |
| availability: "transitional", | |
| default: 64, | |
| }, | |
| { | |
| // Maximum delay allowed per sequence step in ns (<= 100ms). | |
| config: "fuchsia.driver.lab.MaxDelayNs", | |
| key: "max_delay_ns", | |
| type: "uint64", | |
| availability: "transitional", | |
| default: 1000000000, | |
| }, | |
| { | |
| // Maximum sequence duration in ns (<= 1s). | |
| config: "fuchsia.driver.lab.MaxSequenceDurationNs", | |
| key: "max_sequence_duration_ns", | |
| type: "uint64", | |
| availability: "transitional", | |
| default: 1000000000, | |
| }, | |
| { | |
| // Maximum deadline timeout for polls and waits in ns (<= 1s). | |
| config: "fuchsia.driver.lab.MaxDeadlineNs", | |
| key: "max_deadline_ns", | |
| type: "uint64", | |
| availability: "transitional", | |
| default: 1000000000, | |
| }, | |
| { | |
| // Maximum operations allowed per second per session (0 = unlimited). | |
| config: "fuchsia.driver.lab.MaxOpsPerSecond", | |
| key: "max_ops_per_second", | |
| type: "uint32", | |
| availability: "transitional", | |
| default: 0, | |
| }, | |
| ], | |
| } |