| // 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 = int64; | 
 |  | 
 | // 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; | 
 |  | 
 | enum obj_type : uint32 { | 
 |     NONE = 0; | 
 |     PROCESS = 1; | 
 |     THREAD = 2; | 
 |     VMO = 3; | 
 |     CHANNEL = 4; | 
 |     EVENT = 5; | 
 |     PORT = 6; | 
 |     INTERRUPT = 9; | 
 |     PCI_DEVICE = 11; | 
 |     LOG = 12; | 
 |     SOCKET = 14; | 
 |     RESOURCE = 15; | 
 |     EVENTPAIR = 16; | 
 |     JOB = 17; | 
 |     VMAR = 18; | 
 |     FIFO = 19; | 
 |     GUEST = 20; | 
 |     VCPU = 21; | 
 |     TIMER = 22; | 
 |     IOMMU = 23; | 
 |     BTI = 24; | 
 |     PROFILE = 25; | 
 |     PMT = 26; | 
 |     SUSPEND_TOKEN = 27; | 
 |     PAGER = 28; | 
 |     EXCEPTION = 29; | 
 |     CLOCK = 30; | 
 |     STREAM = 31; | 
 |     MSI_ALLOCATION = 32; | 
 |     MSI_INTERRUPT = 33; | 
 | }; | 
 |  | 
 | resource_definition handle : uint32 { | 
 |     properties { | 
 |         obj_type subtype; | 
 |     }; | 
 | }; |