zx_port_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 傳遞至「選項」,否則應為 0

如果通訊埠已繫結至中斷,系統會透過通訊埠的特定佇列傳送中斷封包,且優先順序高於其他未中斷封包。

傳回的帳號代碼將:

  • ZX_RIGHT_TRANSFER:允許透過 zx_channel_write() 將要求傳送至其他程序。
  • ZX_RIGHT_WRITE:允許將封包排入佇列
  • ZX_RIGHT_READ:允許「讀取」封包。
  • ZX_RIGHT_DUPLICATE:允許重複

權限

呼叫端工作政策必須允許 ZX_POL_NEW_PORT

傳回值

zx_port_create() 會在成功時透過「出」傳回 ZX_OK 和有效的 IO 通訊埠控制代碼。如果失敗,系統會傳回錯誤值。

錯誤

ZX_ERR_INVALID_ARGS options 的值無效,或 out 是無效指標或 NULL。

ZX_ERR_NO_MEMORY 因記憶體不足而失敗。使用者空間無法以任何方式處理這個錯誤 (極可能) 錯誤。在日後的版本中,系統不會再發生這個錯誤。

另請參閱