摘要
从调试串行端口读取消息。
声明
#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 指向的位置包含已读取的 actual 字节。
错误
在内核命令行中,ZX_ERR_NOT_SUPPORTED kernel.enable-serial-syscalls 未设置为 true。
ZX_ERR_INVALID_ARGS buffer 或 actual 为 NULL。