摘要
建立 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 連接埠控制代碼:out
成效。如果作業失敗,系統會傳回錯誤值。
錯誤
ZX_ERR_INVALID_ARGS
選項 包含無效值,或 out 為
指標或空值無效。
ZX_ERR_NO_MEMORY
因記憶體不足而失敗。
使用者空間無法妥善處理這種 (異常) 錯誤。
在日後的版本中不會再發生這個錯誤。
另請參閱
zx_handle_close()
zx_handle_duplicate()
zx_handle_replace()
zx_object_wait_async()
zx_port_queue()
zx_port_wait()