| // Copyright 2017 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. |
| |
| #ifndef SYSROOT_ZIRCON_RIGHTS_H_ |
| #define SYSROOT_ZIRCON_RIGHTS_H_ |
| |
| #include <stdint.h> |
| |
| typedef uint32_t zx_rights_t; |
| #define ZX_RIGHT_NONE ((zx_rights_t)0u) |
| #define ZX_RIGHT_DUPLICATE ((zx_rights_t)1u << 0) |
| #define ZX_RIGHT_TRANSFER ((zx_rights_t)1u << 1) |
| #define ZX_RIGHT_READ ((zx_rights_t)1u << 2) |
| #define ZX_RIGHT_WRITE ((zx_rights_t)1u << 3) |
| #define ZX_RIGHT_EXECUTE ((zx_rights_t)1u << 4) |
| #define ZX_RIGHT_MAP ((zx_rights_t)1u << 5) |
| #define ZX_RIGHT_GET_PROPERTY ((zx_rights_t)1u << 6) |
| #define ZX_RIGHT_SET_PROPERTY ((zx_rights_t)1u << 7) |
| #define ZX_RIGHT_ENUMERATE ((zx_rights_t)1u << 8) |
| #define ZX_RIGHT_DESTROY ((zx_rights_t)1u << 9) |
| #define ZX_RIGHT_SET_POLICY ((zx_rights_t)1u << 10) |
| #define ZX_RIGHT_GET_POLICY ((zx_rights_t)1u << 11) |
| #define ZX_RIGHT_SIGNAL ((zx_rights_t)1u << 12) |
| #define ZX_RIGHT_SIGNAL_PEER ((zx_rights_t)1u << 13) |
| #define ZX_RIGHT_WAIT ((zx_rights_t)1u << 14) |
| #define ZX_RIGHT_INSPECT ((zx_rights_t)1u << 15) |
| #define ZX_RIGHT_MANAGE_JOB ((zx_rights_t)1u << 16) |
| #define ZX_RIGHT_MANAGE_PROCESS ((zx_rights_t)1u << 17) |
| #define ZX_RIGHT_MANAGE_THREAD ((zx_rights_t)1u << 18) |
| #define ZX_RIGHT_APPLY_PROFILE ((zx_rights_t)1u << 19) |
| #define ZX_RIGHT_MANAGE_SOCKET ((zx_rights_t)1u << 20) |
| #define ZX_RIGHT_SAME_RIGHTS ((zx_rights_t)1u << 31) |
| |
| // Convenient names for commonly grouped rights. |
| #define ZX_RIGHTS_BASIC (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WAIT | ZX_RIGHT_INSPECT) |
| |
| #define ZX_RIGHTS_IO (ZX_RIGHT_READ | ZX_RIGHT_WRITE) |
| |
| #define ZX_RIGHTS_PROPERTY (ZX_RIGHT_GET_PROPERTY | ZX_RIGHT_SET_PROPERTY) |
| |
| #define ZX_RIGHTS_POLICY (ZX_RIGHT_GET_POLICY | ZX_RIGHT_SET_POLICY) |
| |
| #define ZX_DEFAULT_CHANNEL_RIGHTS \ |
| ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_DUPLICATE)) | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL | \ |
| ZX_RIGHT_SIGNAL_PEER) |
| |
| #define ZX_DEFAULT_EVENT_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_SYSTEM_EVENT_LOW_MEMORY_RIGHTS \ |
| (ZX_RIGHT_WAIT | ZX_RIGHT_DUPLICATE | ZX_RIGHT_TRANSFER) |
| |
| #define ZX_DEFAULT_EVENTPAIR_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER) |
| |
| #define ZX_DEFAULT_FIFO_RIGHTS \ |
| (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER) |
| |
| #define ZX_DEFAULT_GUEST_RIGHTS \ |
| (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WRITE | ZX_RIGHT_INSPECT | \ |
| ZX_RIGHT_MANAGE_PROCESS) |
| |
| #define ZX_DEFAULT_INTERRUPT_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_IO_MAPPING_RIGHTS (ZX_RIGHT_READ | ZX_RIGHT_INSPECT) |
| |
| #define ZX_DEFAULT_JOB_RIGHTS \ |
| (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHTS_POLICY | ZX_RIGHT_ENUMERATE | \ |
| ZX_RIGHT_DESTROY | ZX_RIGHT_SIGNAL | ZX_RIGHT_MANAGE_JOB | ZX_RIGHT_MANAGE_PROCESS | \ |
| ZX_RIGHT_MANAGE_THREAD) |
| |
| #define ZX_DEFAULT_LOG_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_WRITE | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_MSI_RIGHTS (ZX_RIGHTS_BASIC) |
| |
| #define ZX_DEFAULT_PCI_DEVICE_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO) |
| |
| #define ZX_DEFAULT_PCI_INTERRUPT_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_PORT_RIGHTS ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHTS_IO) |
| |
| #define ZX_DEFAULT_PROCESS_RIGHTS \ |
| (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_ENUMERATE | ZX_RIGHT_DESTROY | \ |
| ZX_RIGHT_SIGNAL | ZX_RIGHT_MANAGE_PROCESS | ZX_RIGHT_MANAGE_THREAD) |
| |
| #define ZX_DEFAULT_RESOURCE_RIGHTS \ |
| (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WRITE | ZX_RIGHT_INSPECT) |
| |
| #define ZX_DEFAULT_SOCKET_RIGHTS \ |
| (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_GET_PROPERTY | ZX_RIGHT_SET_PROPERTY | \ |
| ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER | ZX_RIGHT_MANAGE_SOCKET) |
| |
| #define ZX_DEFAULT_STREAM_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_PROPERTY | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_THREAD_RIGHTS \ |
| (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_DESTROY | ZX_RIGHT_SIGNAL | \ |
| ZX_RIGHT_MANAGE_THREAD) |
| |
| #define ZX_DEFAULT_TIMER_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_WRITE | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_VCPU_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_EXECUTE | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_VMAR_RIGHTS (ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) |
| |
| #define ZX_DEFAULT_VMO_RIGHTS \ |
| (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_MAP | ZX_RIGHT_SIGNAL) |
| |
| #define ZX_DEFAULT_IOMMU_RIGHTS (ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) |
| |
| #define ZX_DEFAULT_BTI_RIGHTS \ |
| ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_MAP) |
| |
| #define ZX_DEFAULT_PROFILE_RIGHTS ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHT_APPLY_PROFILE) |
| |
| #define ZX_DEFAULT_PMT_RIGHTS (ZX_RIGHT_INSPECT) |
| |
| #define ZX_DEFAULT_SUSPEND_TOKEN_RIGHTS (ZX_RIGHT_TRANSFER | ZX_RIGHT_INSPECT) |
| |
| #define ZX_DEFAULT_PAGER_RIGHTS \ |
| (ZX_RIGHT_INSPECT | ZX_RIGHT_GET_PROPERTY | ZX_RIGHT_SET_PROPERTY | ZX_RIGHT_TRANSFER) |
| |
| #define ZX_DEFAULT_EXCEPTION_RIGHTS (ZX_RIGHT_TRANSFER | ZX_RIGHTS_PROPERTY | ZX_RIGHT_INSPECT) |
| |
| #define ZX_DEFAULT_CLOCK_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO) |
| |
| #endif // SYSROOT_ZIRCON_RIGHTS_H_ |