Skip to content

Latest commit

 

History

History
48 lines (40 loc) · 3.26 KB

rights.md

File metadata and controls

48 lines (40 loc) · 3.26 KB

Rights

Basics

Rights are associated with handles and convey privileges to perform actions on either the associated handle or the object associated with the handle.

The <zircon/rights.h> header defines default rights for each object type, which can be reduced via zx_handle_replace() or zx_handle_duplicate().

Right Conferred Privileges
ZX_RIGHT_DUPLICATE Allows handle duplication via zx_handle_duplicate
ZX_RIGHT_TRANSFER Allows handle transfer via zx_channel_write
ZX_RIGHT_READ TO BE REMOVED Allows inspection of object state
Allows reading of data from containers (channels, sockets, VM objects, etc)
Allows mapping as readable if ZX_RIGHT_MAP is also present
ZX_RIGHT_WRITE TO BE REMOVED Allows modification of object state
Allows writing of data to containers (channels, sockets, VM objects, etc)
Allows mapping as writeable if ZX_RIGHT_MAP is also present
ZX_RIGHT_EXECUTE Allows mapping as executable if ZX_RIGHT_MAP is also present
ZX_RIGHT_MAP Allows mapping of a VM object into an address space.
ZX_RIGHT_GET_PROPERTY Allows property inspection via zx_object_get_property
ZX_RIGHT_SET_PROPERTY Allows property modification via zx_object_set_property
ZX_RIGHT_ENUMERATE Allows enumerating child objects via zx_object_get_info and zx_object_get_child
ZX_RIGHT_DESTROY Allows termination of task objects via zx_task_kill
ZX_RIGHT_SET_POLICY Allows policy modification via zx_job_set_policy
ZX_RIGHT_GET_POLICY Allows policy inspection via zx_job_get_policy
ZX_RIGHT_SIGNAL Allows use of zx_object_signal
ZX_RIGHT_SIGNAL_PEER Allows use of zx_object_signal_peer
ZX_RIGHT_WAIT Allows use of zx_object_wait_one, zx_object_wait_many, and other waiting primitives
ZX_RIGHT_INSPECT Allows inspection via zx_object_get_info
ZX_RIGHT_MANAGE_JOB NOT YET IMPLEMENTED Allows creation of processes, subjobs, etc.
ZX_RIGHT_MANAGE_PROCESS NOT YET IMPLEMENTED Allows creation of threads, etc
ZX_RIGHT_MANAGE_THREAD NOT YET IMPLEMENTED Allows suspending/resuming threads, etc

ZX_RIGHTS_BASIC

The basic rights allow primitive manipulation of handles and are common to the majority of handle types by default. These are ZX_RIGHT_DUPLICATE, ZX_RIGHT_TRANSFER, ZX_RIGHT_WAIT, and ZX_RIGHT_INSPECT.

These four rights are referred to as ZX_RIGHTS_BASIC when used together.

See also

Objects, Handles