// 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.
//
// Additionally, this file is defined as `Internal` which omits any code from
// being generated by bindings. As a result, no declaration (e.g. an enum or
// bits) may be present in this file.
[Internal]
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;
