blob: a5763d97ce0b255442146c4843d48f8e0e2e03a3 [file] [log] [blame]
// Copyright 2018 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.
//! Type-safe bindings for Zircon rights.
use bitflags::bitflags;
use fuchsia_zircon_sys as sys;
bitflags! {
/// Rights associated with a handle.
///
/// See [rights.md](https://fuchsia.googlesource.com/zircon/+/master/docs/rights.md)
/// for more information.
#[repr(C)]
pub struct Rights: sys::zx_rights_t {
const NONE = sys::ZX_RIGHT_NONE;
const DUPLICATE = sys::ZX_RIGHT_DUPLICATE;
const TRANSFER = sys::ZX_RIGHT_TRANSFER;
const READ = sys::ZX_RIGHT_READ;
const WRITE = sys::ZX_RIGHT_WRITE;
const EXECUTE = sys::ZX_RIGHT_EXECUTE;
const MAP = sys::ZX_RIGHT_MAP;
const GET_PROPERTY = sys::ZX_RIGHT_GET_PROPERTY;
const SET_PROPERTY = sys::ZX_RIGHT_SET_PROPERTY;
const ENUMERATE = sys::ZX_RIGHT_ENUMERATE;
const DESTROY = sys::ZX_RIGHT_DESTROY;
const SET_POLICY = sys::ZX_RIGHT_SET_POLICY;
const GET_POLICY = sys::ZX_RIGHT_GET_POLICY;
const SIGNAL = sys::ZX_RIGHT_SIGNAL;
const SIGNAL_PEER = sys::ZX_RIGHT_SIGNAL_PEER;
const WAIT = sys::ZX_RIGHT_WAIT;
const INSPECT = sys::ZX_RIGHT_INSPECT;
const MANAGE_JOB = sys::ZX_RIGHT_MANAGE_JOB;
const MANAGE_PROCESS = sys::ZX_RIGHT_MANAGE_PROCESS;
const MANAGE_THREAD = sys::ZX_RIGHT_MANAGE_THREAD;
const APPLY_PROFILE = sys::ZX_RIGHT_APPLY_PROFILE;
const SAME_RIGHTS = sys::ZX_RIGHT_SAME_RIGHTS;
const BASIC = sys::ZX_RIGHT_TRANSFER | sys::ZX_RIGHT_DUPLICATE |
sys::ZX_RIGHT_WAIT | sys::ZX_RIGHT_INSPECT;
const IO = sys::ZX_RIGHT_READ | sys::ZX_RIGHT_WRITE;
const PROPERTY = sys::ZX_RIGHT_GET_PROPERTY | sys::ZX_RIGHT_SET_PROPERTY;
const POLICY = sys::ZX_RIGHT_GET_POLICY | sys::ZX_RIGHT_SET_POLICY;
}
}