zxport_create

摘要

创建 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 因内存不足而失败。 用户空间没有好办法处理这种(不太可能)错误。 在未来的版本中,此错误不会再发生。

另请参阅