blob: 1cfa768cad8ce85c1c7a93b8891e3530df928bb6 [file] [log] [blame]
Doug Horn1427b6a2018-12-11 13:19:16 -08001// 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
Adam Barth57eacf52020-11-04 00:38:09 +00005#ifndef SYSROOT_ZIRCON_RIGHTS_H_
6#define SYSROOT_ZIRCON_RIGHTS_H_
Doug Horn1427b6a2018-12-11 13:19:16 -08007
8#include <stdint.h>
9
10typedef uint32_t zx_rights_t;
Adam Barth57eacf52020-11-04 00:38:09 +000011#define ZX_RIGHT_NONE ((zx_rights_t)0u)
12#define ZX_RIGHT_DUPLICATE ((zx_rights_t)1u << 0)
13#define ZX_RIGHT_TRANSFER ((zx_rights_t)1u << 1)
14#define ZX_RIGHT_READ ((zx_rights_t)1u << 2)
15#define ZX_RIGHT_WRITE ((zx_rights_t)1u << 3)
16#define ZX_RIGHT_EXECUTE ((zx_rights_t)1u << 4)
17#define ZX_RIGHT_MAP ((zx_rights_t)1u << 5)
18#define ZX_RIGHT_GET_PROPERTY ((zx_rights_t)1u << 6)
19#define ZX_RIGHT_SET_PROPERTY ((zx_rights_t)1u << 7)
20#define ZX_RIGHT_ENUMERATE ((zx_rights_t)1u << 8)
21#define ZX_RIGHT_DESTROY ((zx_rights_t)1u << 9)
22#define ZX_RIGHT_SET_POLICY ((zx_rights_t)1u << 10)
23#define ZX_RIGHT_GET_POLICY ((zx_rights_t)1u << 11)
24#define ZX_RIGHT_SIGNAL ((zx_rights_t)1u << 12)
25#define ZX_RIGHT_SIGNAL_PEER ((zx_rights_t)1u << 13)
26#define ZX_RIGHT_WAIT ((zx_rights_t)1u << 14)
27#define ZX_RIGHT_INSPECT ((zx_rights_t)1u << 15)
28#define ZX_RIGHT_MANAGE_JOB ((zx_rights_t)1u << 16)
29#define ZX_RIGHT_MANAGE_PROCESS ((zx_rights_t)1u << 17)
30#define ZX_RIGHT_MANAGE_THREAD ((zx_rights_t)1u << 18)
31#define ZX_RIGHT_APPLY_PROFILE ((zx_rights_t)1u << 19)
32#define ZX_RIGHT_SAME_RIGHTS ((zx_rights_t)1u << 31)
Doug Horn1427b6a2018-12-11 13:19:16 -080033
34// Convenient names for commonly grouped rights.
35#define ZX_RIGHTS_BASIC (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WAIT | ZX_RIGHT_INSPECT)
36
37#define ZX_RIGHTS_IO (ZX_RIGHT_READ | ZX_RIGHT_WRITE)
38
39#define ZX_RIGHTS_PROPERTY (ZX_RIGHT_GET_PROPERTY | ZX_RIGHT_SET_PROPERTY)
40
41#define ZX_RIGHTS_POLICY (ZX_RIGHT_GET_POLICY | ZX_RIGHT_SET_POLICY)
42
Adam Barth57eacf52020-11-04 00:38:09 +000043#define ZX_DEFAULT_CHANNEL_RIGHTS \
44 ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_DUPLICATE)) | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL | \
45 ZX_RIGHT_SIGNAL_PEER)
Doug Horn1427b6a2018-12-11 13:19:16 -080046
47#define ZX_DEFAULT_EVENT_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_SIGNAL)
48
Adam Barth57eacf52020-11-04 00:38:09 +000049#define ZX_DEFAULT_SYSTEM_EVENT_LOW_MEMORY_RIGHTS \
50 (ZX_RIGHT_WAIT | ZX_RIGHT_DUPLICATE | ZX_RIGHT_TRANSFER)
51
Doug Horn1427b6a2018-12-11 13:19:16 -080052#define ZX_DEFAULT_EVENTPAIR_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER)
53
54#define ZX_DEFAULT_FIFO_RIGHTS \
Adam Barth57eacf52020-11-04 00:38:09 +000055 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER)
Doug Horn1427b6a2018-12-11 13:19:16 -080056
Adam Barth57eacf52020-11-04 00:38:09 +000057#define ZX_DEFAULT_GUEST_RIGHTS \
58 (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WRITE | ZX_RIGHT_INSPECT | \
59 ZX_RIGHT_MANAGE_PROCESS)
Doug Horn1427b6a2018-12-11 13:19:16 -080060
61#define ZX_DEFAULT_INTERRUPT_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL)
62
Adam Barth57eacf52020-11-04 00:38:09 +000063#define ZX_DEFAULT_IO_MAPPING_RIGHTS (ZX_RIGHT_READ | ZX_RIGHT_INSPECT)
Doug Horn1427b6a2018-12-11 13:19:16 -080064
Adam Barth57eacf52020-11-04 00:38:09 +000065#define ZX_DEFAULT_JOB_RIGHTS \
66 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHTS_POLICY | ZX_RIGHT_ENUMERATE | \
67 ZX_RIGHT_DESTROY | ZX_RIGHT_SIGNAL | ZX_RIGHT_MANAGE_JOB | ZX_RIGHT_MANAGE_PROCESS | \
68 ZX_RIGHT_MANAGE_THREAD)
Doug Horn1427b6a2018-12-11 13:19:16 -080069
Adam Barth57eacf52020-11-04 00:38:09 +000070#define ZX_DEFAULT_LOG_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_WRITE | ZX_RIGHT_SIGNAL)
Doug Horn1427b6a2018-12-11 13:19:16 -080071
Adam Barth57eacf52020-11-04 00:38:09 +000072#define ZX_DEFAULT_MSI_RIGHTS (ZX_RIGHTS_BASIC)
Doug Horn1427b6a2018-12-11 13:19:16 -080073
Adam Barth57eacf52020-11-04 00:38:09 +000074#define ZX_DEFAULT_PCI_DEVICE_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO)
Doug Horn1427b6a2018-12-11 13:19:16 -080075
Adam Barth57eacf52020-11-04 00:38:09 +000076#define ZX_DEFAULT_PCI_INTERRUPT_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_SIGNAL)
Doug Horn1427b6a2018-12-11 13:19:16 -080077
Adam Barth57eacf52020-11-04 00:38:09 +000078#define ZX_DEFAULT_PORT_RIGHTS ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHTS_IO)
79
80#define ZX_DEFAULT_PROCESS_RIGHTS \
81 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_ENUMERATE | ZX_RIGHT_DESTROY | \
82 ZX_RIGHT_SIGNAL | ZX_RIGHT_MANAGE_PROCESS | ZX_RIGHT_MANAGE_THREAD)
Doug Horn1427b6a2018-12-11 13:19:16 -080083
84#define ZX_DEFAULT_RESOURCE_RIGHTS \
Adam Barth57eacf52020-11-04 00:38:09 +000085 (ZX_RIGHT_TRANSFER | ZX_RIGHT_DUPLICATE | ZX_RIGHT_WRITE | ZX_RIGHT_INSPECT)
Doug Horn1427b6a2018-12-11 13:19:16 -080086
Adam Barth57eacf52020-11-04 00:38:09 +000087#define ZX_DEFAULT_SOCKET_RIGHTS \
88 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_GET_PROPERTY | ZX_RIGHT_SET_PROPERTY | \
89 ZX_RIGHT_SIGNAL | ZX_RIGHT_SIGNAL_PEER)
Doug Horn1427b6a2018-12-11 13:19:16 -080090
Adam Barth57eacf52020-11-04 00:38:09 +000091#define ZX_DEFAULT_STREAM_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_PROPERTY | ZX_RIGHT_SIGNAL)
92
93#define ZX_DEFAULT_THREAD_RIGHTS \
94 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_DESTROY | ZX_RIGHT_SIGNAL | \
95 ZX_RIGHT_MANAGE_THREAD)
Doug Horn1427b6a2018-12-11 13:19:16 -080096
97#define ZX_DEFAULT_TIMER_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHT_WRITE | ZX_RIGHT_SIGNAL)
98
Adam Barth57eacf52020-11-04 00:38:09 +000099#define ZX_DEFAULT_VCPU_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHT_EXECUTE | ZX_RIGHT_SIGNAL)
Doug Horn1427b6a2018-12-11 13:19:16 -0800100
Adam Barth57eacf52020-11-04 00:38:09 +0000101#define ZX_DEFAULT_VMAR_RIGHTS (ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT))
Doug Horn1427b6a2018-12-11 13:19:16 -0800102
Adam Barth57eacf52020-11-04 00:38:09 +0000103#define ZX_DEFAULT_VMO_RIGHTS \
104 (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_MAP | ZX_RIGHT_SIGNAL)
Doug Horn1427b6a2018-12-11 13:19:16 -0800105
Adam Barth57eacf52020-11-04 00:38:09 +0000106#define ZX_DEFAULT_IOMMU_RIGHTS (ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT))
Doug Horn1427b6a2018-12-11 13:19:16 -0800107
108#define ZX_DEFAULT_BTI_RIGHTS \
Adam Barth57eacf52020-11-04 00:38:09 +0000109 ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHTS_IO | ZX_RIGHTS_PROPERTY | ZX_RIGHT_MAP)
Doug Horn1427b6a2018-12-11 13:19:16 -0800110
Adam Barth57eacf52020-11-04 00:38:09 +0000111#define ZX_DEFAULT_PROFILE_RIGHTS ((ZX_RIGHTS_BASIC & (~ZX_RIGHT_WAIT)) | ZX_RIGHT_APPLY_PROFILE)
Doug Horn1427b6a2018-12-11 13:19:16 -0800112
Adam Barth57eacf52020-11-04 00:38:09 +0000113#define ZX_DEFAULT_PMT_RIGHTS (ZX_RIGHT_INSPECT)
Doug Horn1427b6a2018-12-11 13:19:16 -0800114
Adam Barth57eacf52020-11-04 00:38:09 +0000115#define ZX_DEFAULT_SUSPEND_TOKEN_RIGHTS (ZX_RIGHT_TRANSFER | ZX_RIGHT_INSPECT)
Doug Horn1427b6a2018-12-11 13:19:16 -0800116
117#define ZX_DEFAULT_PAGER_RIGHTS \
Adam Barth57eacf52020-11-04 00:38:09 +0000118 (ZX_RIGHT_INSPECT | ZX_RIGHT_GET_PROPERTY | ZX_RIGHT_SET_PROPERTY | ZX_RIGHT_TRANSFER)
Doug Horn1427b6a2018-12-11 13:19:16 -0800119
Adam Barth57eacf52020-11-04 00:38:09 +0000120#define ZX_DEFAULT_EXCEPTION_RIGHTS (ZX_RIGHT_TRANSFER | ZX_RIGHTS_PROPERTY | ZX_RIGHT_INSPECT)
121
122#define ZX_DEFAULT_CLOCK_RIGHTS (ZX_RIGHTS_BASIC | ZX_RIGHTS_IO)
123
124#endif // SYSROOT_ZIRCON_RIGHTS_H_