blob: bfaab184fba7d991c5c4e7163eaaa84ad402aee9 [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 zx;
alias mutable_vector_void = vector<byte>;
alias voidptr = uint64;
[Transport = "Syscall"]
protocol Rust {
// Simple out ptr.
SimpleCase() -> (time time);
MultipleInHandles(vector<handle> handles) -> (status status);
// noreturn handled properly.
[noreturn]
ANoRetFunc();
// Function withot return handled properly too.
NoReturnValue(uint32 x);
// |buffer| treated mutable.
InoutArgs(handle:VMO handle,
uint32 op,
uint64 offset,
uint64 size,
mutable_vector_void buffer)
-> (status status);
// |input| treated const
ConstInput(vector<byte> input) -> (status status);
VariousBasicTypeNames(bool a,
byte b,
int32 d,
int64 e,
uint16 f,
uint32 g,
uint64 h,
usize i,
uintptr j,
voidptr k,
time l,
ticks m);
};