blob: 8697b6b5585a311448f66f8c690bedff18c50f27 [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;
// This file is copies of some syscalls that cover more unusual features (see
// annotations at the method).
using const_futexptr = int32;
using Futex = int32;
using mutable_uint32 = uint32;
using mutable_vector_void = vector<byte>;
using optional_signals = signals;
using vector_void_u32size = vector<byte>;
enum Clock : uint32 {
UTC = 1;
protocol Selection {
// Special futex handling.
FutexRequeue(const_futexptr value_ptr,
uint32 wake_count,
Futex current_value,
const_futexptr requeue_ptr,
uint32 requeue_count,
handle new_requeue_owner) ->
(status status);
// Optional output (signals).
ObjectWaitOne(handle handle, signals signals, time deadline) ->
(status status, optional_signals observed);
// Argument reordering.
KtraceRead(handle<resource> handle, mutable_vector_void data, uint32 offset) ->
(status status, usize actual);
// Mutable uint32 in the middle of input parameters (rather than as an
// output).
PciCfgPioRw(handle<resource> handle,
uint8 bus,
uint8 dev,
uint8 func,
uint8 offset,
mutable_uint32 val,
usize width,
bool write) ->
(status status);
// uint32_t for size of a "vector".
JobSetPolicy(handle<job> handle, uint32 options, uint32 topic, vector_void_u32size policy) ->
(status status);
// Handling of enums.
ClockGet(Clock clock_id) -> (status status, time out);