blob: de747e5f4c392696678dcedd6bc83122dd8d38cf [file] [log] [blame]
// Copyright 2020 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 specific FIDL file is used in two contexts:
//
// 1. Define the `zx` library for plain-vanilla FIDL files, i.e. channel
// transport
// 2. Part of the overall definition of the Kernel ABI, i.e. Syscall transport
//
// Since the FIDL compiler does not support splitting definitions per-transport
// yet, we split definitions by file.
library zx;
// zx_status_t and errors.h.
using status = int32;
// zx_time_t: absolute time in nanoseconds (generally with respect to the
// monotonic clock).
using time = int64;
// zx_duration_t: a duration in nanoseconds.
using duration = int64;
// zx_ticks_t: a duration in hardware ticks.
using ticks = uint64;
// zx_koid_t: global kernel object id.
using koid = uint64;
// zx_vaddr_t: virtual address.
using vaddr = uint64;
// zx_paddr_t: physical address.
using paddr = uint64;
// zx_paddr32_t: low mem physical address.
using paddr32 = uint32;
// zx_gpaddr_t: hypervisor guest physical addresses.
using gpaddr = uint64;
// zx_off_t: offset.
using off = uint64;
// See zircon/processargs.h.
using procarg = uint32;
// zx_signals_t.
using signals = uint32;
// TODO(fxbug.dev/7802): These are currently duplicated with zircon/types.h.
// Eventually the definitions in zircon/types.h will be generated from this
// source.
const uint64 CHANNEL_MAX_MSG_BYTES = 65536;
const uint64 CHANNEL_MAX_MSG_HANDLES = 64;
const uint64 MAX_NAME_LEN = 32;
const uint64 MAX_CPUS = 512;