摘要
创建 IO 端口。
声明
#include <zircon/syscalls.h>
zx_status_t zx_port_create(uint32_t options, zx_handle_t* out);
说明
zx_port_create()
会创建一个端口:一个可用于读取的可等待对象
由内核或用户模式排入队列的数据包。
如果您需要将此端口绑定到中断,请将 ZX_PORT_BIND_TO_INTERRUPT
传递给 options。
否则应为 0
。
如果某个端口绑定到某个中断,中断数据包会通过 专用队列,并且其优先级高于其他非中断数据包。
返回的句柄将包含:
ZX_RIGHT_TRANSFER
:允许通过zx_channel_write()
将它们发送到其他进程。ZX_RIGHT_WRITE
:允许将数据包加入队列。ZX_RIGHT_READ
:允许读取数据包。ZX_RIGHT_DUPLICATE
:允许对它们进行复制。
权限
调用方作业政策必须允许 ZX_POL_NEW_PORT
。
返回值
zx_port_create()
会通过 out 返回 ZX_OK
和有效的 IO 端口句柄
成功。如果失败,则返回错误值。
错误
ZX_ERR_INVALID_ARGS
options 包含无效值,或 out 是
指针无效或 NULL。
ZX_ERR_NO_MEMORY
因内存不足而失败。
用户空间没有好办法处理这种(不太可能)错误。
在未来的版本中,此错误不会再发生。
另请参阅
zx_handle_close()
zx_handle_duplicate()
zx_handle_replace()
zx_object_wait_async()
zx_port_queue()
zx_port_wait()