1// Copyright 2017 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef ZIRCON_RIGHTS_H_ 6#define ZIRCON_RIGHTS_H_ 7 8#include <zircon/types.h> 9 10// Default rights for objects. 11#define ZX_DEFAULT_CHANNEL_RIGHTS \ 12 ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_DUPLICATE)) |\ 13 ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER |\ 14 ZX_RIGHTS_PROPERTY) 15 16#define ZX_DEFAULT_EVENT_RIGHTS \ 17 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL) 18 19#define ZX_DEFAULT_EVENTPAIR_RIGHTS \ 20 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO |\ 21 ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER) 22 23#define ZX_DEFAULT_FIFO_RIGHTS \ 24 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO |\ 25 ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER) 26 27#define ZX_DEFAULT_GUEST_RIGHTS \ 28 (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WRITE |\ 29 ZX_RIGHT_INSPECT | ZX_RIGHT_MANAGE_PROCESS) 30 31#define ZX_DEFAULT_INTERRUPT_RIGHTS \ 32 ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_DUPLICATE)) | ZX_RIGHTS_IO) 33 34#define ZX_DEFAULT_IRQ_RIGHTS \ 35 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL) 36 37#define ZX_DEFAULT_IO_MAPPING_RIGHTS \ 38 (ZX_RIGHT_READ | ZX_RIGHT_INSPECT) 39 40#define ZX_DEFAULT_JOB_RIGHTS \ 41 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY |\ 42 ZX_RIGHTS_POLICY | ZX_RIGHT_ENUMERATE | ZX_RIGHT_DESTROY |\ 43 ZX_RIGHT_SIGNAL | ZX_RIGHT_MANAGE_JOB) 44 45#define ZX_DEFAULT_LOG_RIGHTS \ 46 (ZX_RIGHTS_BASIC | ZX_RIGHT_WRITE | ZX_RIGHT_SIGNAL) 47 48#define ZX_DEFAULT_PCI_DEVICE_RIGHTS \ 49 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO) 50 51#define ZX_DEFAULT_PCI_INTERRUPT_RIGHTS \ 52 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL) 53 54#define ZX_DEFAULT_PORT_RIGHTS \ 55 ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHTS_IO) 56 57#define ZX_DEFAULT_PROCESS_RIGHTS \ 58 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY |\ 59 ZX_RIGHT_ENUMERATE | ZX_RIGHT_DESTROY | ZX_RIGHT_SIGNAL |\ 60 ZX_RIGHT_MANAGE_PROCESS) 61 62#define ZX_DEFAULT_RESOURCE_RIGHTS \ 63 (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WRITE |\ 64 ZX_RIGHT_INSPECT) 65 66#define ZX_DEFAULT_SOCKET_RIGHTS \ 67 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_GET_PROPERTY |\ 68 ZX_RIGHT_SET_PROPERTY | ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER) 69 70#define ZX_DEFAULT_THREAD_RIGHTS \ 71 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY |\ 72 ZX_RIGHT_DESTROY | ZX_RIGHT_SIGNAL | ZX_RIGHT_MANAGE_THREAD) 73 74#define ZX_DEFAULT_TIMERS_RIGHTS \ 75 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL) 76 77#define ZX_DEFAULT_VCPU_RIGHTS \ 78 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_EXECUTE | ZX_RIGHT_SIGNAL) 79 80#define ZX_DEFAULT_VMAR_RIGHTS \ 81 (ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) 82 83#define ZX_DEFAULT_VMO_RIGHTS\ 84 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY |\ 85 ZX_RIGHT_EXECUTE | ZX_RIGHT_MAP | ZX_RIGHT_SIGNAL) 86 87#define ZX_DEFAULT_IOMMU_RIGHTS \ 88 (ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) 89 90#define ZX_DEFAULT_BTI_RIGHTS \ 91 ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHTS_IO | ZX_RIGHT_MAP) 92 93#define ZX_DEFAULT_PROFILE_RIGHTS \ 94 ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHT_APPLY_PROFILE) 95 96#define ZX_DEFAULT_PMT_RIGHTS \ 97 (ZX_RIGHT_INSPECT) 98 99#define ZX_DEFAULT_SUSPEND_TOKEN_RIGHTS \ 100 (ZX_RIGHT_TRANSFER | ZX_RIGHT_INSPECT) 101 102#endif // ZIRCON_RIGHTS_H_ 103