blob: 3836e7c85b0bc3d2edac7886abcd097bc97b0d1d [file]
// 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.
library fuchsia.testing.adb;
using zx;
const MAX_COMMAND_LENGTH uint32 = 2048;
@discoverable
open protocol Client {
/// Discovers and connects to the USB endpoints.
///
/// Returns `ZX_ERR_NOT_FOUND` if no compatible USB endpoints are discovered.
flexible Setup() -> () error zx.Status;
/// Sends a `CNXN` handshake on the USB bus and waits for response.
///
/// Must be called after successful `Setup()`.
/// Returns `ZX_ERR_BAD_STATE` if USB is not yet connected.
flexible Connect() -> () error zx.Status;
/// Executes a shell command and returns the `WRTE` payload output.
flexible ExecuteCommand(struct {
command string:MAX_COMMAND_LENGTH;
}) -> (struct {
output string:MAX;
}) error zx.Status;
};