| // 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; |
| }); |
| }; |