blob: 358ca57a73cfb696294270cd6ab43634d85a5340 [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.
// !!! THIS FILE IS NOT YET USED !!!
// See //zircon/system/public/zircon/syscalls.banjo.
// !!! THIS FILE IS NOT YET USED !!!
library zz;
[Transport="Syscall"]
protocol Socket {
/// Create a socket.
[Out1="handle:acquire",
Out2="handle:acquire"]
Create(uint32 options) -> (status status, handle out0, handle out1);
/// Write data to a socket.
[In0="handle<socket>:rights=WRITE",
Out1="optional<usize>"]
Write(handle<socket> handle, uint32 options, vector<byte> buffer) ->
(status status, usize actual);
/// Read data from a socket.
[In0="handle<socket>:rights=READ",
In2="mutable<vector<byte>>",
Out1="optional<usize>"]
Read(handle<socket> handle, uint32 options, vector<byte> buffer) ->
(status status, usize actual);
/// Prevent reading or writing.
[In0="handle<socket>:rights=WRITE"]
Shutdown(handle<socket> handle, uint32 options) -> (status status);
};