摘要
讀取偵錯序列埠的訊息。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_debug_read(zx_handle_t handle,
char* buffer,
size_t buffer_size,
size_t* actual);
說明
zx_debug_read() 嘗試從偵錯序列埠讀取資料。buffer_size 參數用於指定讀取緩衝區的位元組大小。buffer 的長度 (以位元組為單位) 會儲存在 actual 指向的位置。
這個函式會等到至少有一個位元組可用時,才會傳回。最多可傳回 buffer_size 個位元組。
NOTE: 來自偵錯序列的資料只有一個緩衝區,呼叫 zx_debug_read 會耗用這項資料。如果多個程式同時呼叫這個方法,每個程式都會收到部分資料串流。
如要使用 zx_debug_read() 函式,您必須在核心指令列中指定 kernel.enable-serial-syscalls=true。否則,函式會傳回 ZX_ERR_NOT_SUPPORTED。
權限
handle 必須具有資源種類 ZX_RSRC_KIND_SYSTEM,且基礎為 ZX_RSRC_SYSTEM_DEBUG_BASE。
傳回值
成功時會傳回 ZX_OK。buffer 指向的位置包含已讀取的實際位元組。
錯誤
ZX_ERR_NOT_SUPPORTED 核心指令列上的 kernel.enable-serial-syscalls 未設為 true。
ZX_ERR_INVALID_ARGS buffer 或 actual 為 NULL。