blob: e6ed153ae0c3aca4d55ae13dd59aff32c7082436 [file] [log] [blame]
// Copyright 2019 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.tee;
using zx;
type Uuid = struct {
time_low uint32;
time_mid uint16;
time_hi_and_version uint16;
clock_seq_and_node array<uint8, 8>;
};
@transport("Banjo")
@banjo_layout("ddk-protocol")
protocol Tee {
/// Takes the server end of a FIDL connection that'll serve fuchsia.tee.Application for the
/// given application_uuid.
///
/// If the connection fails, |s| will be a failing status and tee_app_request and
/// service_provider (if valid) will both be closed.
///
/// The service_provider can be ZX_HANDLE_INVALID if the connection won't be used for any
/// requests that'll result in filesystem requests from the TEE. If not ZX_HANDLE_INVALID, the
/// service provider will be used in serving filesystem requests from the TEE.
ConnectToApplication(resource struct {
application_uuid Uuid;
tee_app_request zx.handle:CHANNEL;
service_provider zx.handle:CHANNEL;
}) -> (struct {
s zx.status;
});
};