blob: 0a3a5b469a833f31fa37b6ef429aaf4dbc2d8a61 [file] [log] [blame]
// Copyright 2018 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.hardware.bt.hci;
using zx;
[BanjoLayout = "ddk-protocol"]
protocol BtHci {
/// Open the two-way HCI command channel for sending HCI commands and
/// receiving event packets. Returns ZX_ERR_ALREADY_BOUND if the channel
/// is already open.
OpenCommandChannel(zx.handle:CHANNEL channel) -> (zx.status s);
/// Open the two-way HCI ACL data channel.
/// Returns ZX_ERR_ALREADY_BOUND if the channel is already open.
OpenAclDataChannel(zx.handle:CHANNEL channel) -> (zx.status s);
/// Open an output-only channel for monitoring HCI traffic.
/// The format of each message is: [1-octet flags] [n-octet payload]
/// The flags octet is a bitfield with the following values defined:
/// - 0x00: The payload represents a command packet sent from the host to the
/// controller.
/// - 0x01: The payload represents an event packet sent by the controller.
/// Returns ZX_ERR_ALREADY_BOUND if the channel is already open.
OpenSnoopChannel(zx.handle:CHANNEL channel) -> (zx.status s);
};