| # zx_debug_read | 
 |  | 
 | ## NAME | 
 |  | 
 | <!-- Contents of this heading updated by update-docs-from-fidl, do not edit. --> | 
 |  | 
 | Read a message from the debug serial port. | 
 |  | 
 | ## SYNOPSIS | 
 |  | 
 | <!-- Contents of this heading updated by update-docs-from-fidl, do not edit. --> | 
 |  | 
 | ```c | 
 | #include <zircon/syscalls.h> | 
 |  | 
 | zx_status_t zx_debug_read(zx_handle_t handle, | 
 |                           char* buffer, | 
 |                           size_t buffer_size, | 
 |                           size_t* actual); | 
 | ``` | 
 |  | 
 | ## DESCRIPTION | 
 |  | 
 | `zx_debug_read()` attempts to read data from the debug serial port. | 
 | The parameter *buffer_size* is used to specify the byte size of the read buffer. | 
 | The length of *buffer*, in bytes, is stored in the location pointed to by | 
 | *actual*. | 
 |  | 
 | This function will wait until at least one byte is available before it returns. | 
 | This can return up to *buffer_size* bytes. | 
 |  | 
 | **NOTE:** There is only one buffer of the data that is coming from the debug | 
 | serial, and calling `zx_debug_read` consumes this data. If multiple programs are calling | 
 | this at once, they will each receive pieces of the data stream. | 
 |  | 
 |  | 
 | To use the `zx_debug_read()` function, you must specify | 
 | `kernel.enable-serial-syscalls=true` on the kernel command line. Otherwise, | 
 | the function returns **ZX_ERR_NOT_SUPPORTED**. | 
 |  | 
 | ## RIGHTS | 
 |  | 
 | <!-- Contents of this heading updated by update-docs-from-fidl, do not edit. --> | 
 |  | 
 | *handle* must have resource kind **ZX_RSRC_KIND_ROOT**. | 
 |  | 
 | ## RETURN VALUE | 
 |  | 
 | Returns **ZX_OK** on success. The location pointed to by *buffer* contains | 
 | *actual* bytes that were read. | 
 |  | 
 | ## ERRORS | 
 |  | 
 | **ZX_ERR_NOT_SUPPORTED**  `kernel.enable-serial-syscalls` is not set to `true` | 
 | on the kernel command line. | 
 |  | 
 | **ZX_ERR_INVALID_ARGS**  *buffer* or *actual* are NULL. | 
 |  | 
 | ## SEE ALSO | 
 |  | 
 |  - [kernel command line] | 
 |  - [`zx_debug_write()`] | 
 |  - [`zx_debuglog_read()`] | 
 |  - [`zx_debuglog_write()`] | 
 |  | 
 | <!-- References updated by update-docs-from-fidl, do not edit. --> | 
 |  | 
 | [kernel command line]: /docs/reference/kernel/kernel_cmdline.md | 
 | [`zx_debug_write()`]: debug_write.md | 
 | [`zx_debuglog_read()`]: debuglog_read.md | 
 | [`zx_debuglog_write()`]: debuglog_write.md |