摘要
从调试串行端口读取消息。
声明
#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 用于指定读取缓冲区的字节大小。
缓冲区的长度(以字节为单位)存储在
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。