// Copyright 2021 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.

// The aliases in this file should be kept in sync with the ones in:
//   //zircon/vdso/zx_common.fidl

library zx;

alias status = int32;
alias time = int64;
alias duration = int64;
alias ticks = int64;
alias koid = uint64;
alias vaddr = uint64;
alias paddr = uint64;
alias paddr32 = uint32;
alias gpaddr = uint64;
alias off = uint64;
alias procarg = uint32;
alias signals = uint32;

// This type mimcs a type defined in the FIDL version of the FIDL library.
// It is never used directly but plays a pivotal role in ordering type declarations.
alias handle = uint32;
