| // 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 zx; |
| |
| alias mutable_vector_void = vector<byte>; |
| |
| [Transport="Syscall"] |
| protocol Kwrap { |
| // Simple out ptr. |
| SimpleCase() -> (time time); |
| |
| MultipleInHandles(vector<handle> handles) -> (status status); |
| |
| // vdsocall excluded. |
| [vdsocall] |
| TicksGet() -> (ticks ticks); |
| |
| // noreturn handled properly. |
| [noreturn] |
| ANoRetFunc(); |
| |
| // |buffer| treated as inout parameter. |
| InoutArgs(handle:VMO handle, |
| uint32 op, |
| uint64 offset, |
| uint64 size, |
| mutable_vector_void buffer) -> |
| (status status); |
| |
| // Output handle copied properly. |
| OutputHandle() -> (status status, handle:EVENT event); |
| |
| // When two output handles, status and copy are verified before any bytes |
| // returned. |
| TwoOutputHandle() -> (status status, handle:EVENT out0, handle:EVENT out1); |
| |
| [testonly] |
| CompiledOut() -> (status status); |
| }; |