blob: cf65c62269cf8de1ae7c732dc087217600b27533 [file] [log] [blame]
// Copyright 2020 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.
@available(added=7)
library fuchsia.factory.wlan;
using zx;
const MAX_BUFFER_SIZE uint64 = 16384;
/// Allows the factory testing tool to communicate to the firmware via the driver using
/// a pre-formatted command buffer to observe and/or control the WLAN hardware's behavior.
closed protocol Iovar {
/// + request `iface_idx` interface index in the firmware
/// + request `cmd` pre-defined command index specified by the manufacturer
/// + request `request` additional data associated with the command
/// - response `result` pre-formatted response data retrieved from firmware
/// * error a status code indicating why the request could not be completed.
strict Get(struct {
iface_idx int32;
cmd int32;
request vector<uint8>:MAX_BUFFER_SIZE;
}) -> (struct {
result vector<uint8>:MAX_BUFFER_SIZE;
}) error zx.Status;
/// + request `iface_idx` interface index in the firmware
/// + request `cmd` pre-defined command index specified by the manufacturer
/// + request `request` additional data associated with the command
/// * error a status code indicating why the request could not be completed.
strict Set(struct {
iface_idx int32;
cmd int32;
request vector<uint8>:MAX_BUFFER_SIZE;
}) -> () error zx.Status;
};