Create an IO port.
#include <zircon/syscalls.h> zx_status_t zx_port_create(uint32_t options, zx_handle_t* out);
zx_port_create() creates a port: a waitable object that can be used to read
packets queued by kernel or by user-mode.
If you need this port to be bound to an interrupt, pass ZX_PORT_BIND_TO_INTERRUPT to options, otherwise it should be 0.
In the case where a port is bound to an interrupt, the interrupt packets are delivered via a dedicated queue on ports and are higher priority than other non-interrupt packets.
The returned handle will have:
ZX_RIGHT_TRANSFER: allowing them to be sent to another process through
ZX_RIGHT_WRITE: allowing packets to be queued.
ZX_RIGHT_READ: allowing packets to be read.
ZX_RIGHT_DUPLICATE: allowing them to be duplicated.
zx_port_create() returns ZX_OK and a valid IO port handle via out on
success. In the event of failure, an error value is returned.
ZX_ERR_INVALID_ARGS options has an invalid value, or out is an invalid pointer or NULL.
ZX_ERR_NO_MEMORY Failure due to lack of memory. There is no good way for userspace to handle this (unlikely) error. In a future builds this error will no longer occur.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2019-11-21.