blob: d3a203f6911a462d105659b93ba38da21e2480cd [file] [view]
<!--
Copyright 2023 The Fuchsia Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
DO NOT EDIT. Generated from FIDL library zx by zither, a Fuchsia platform tool.
See //docs/reference/syscalls/README.md#documentation-generation for
regeneration instructions.
-->
# zx_iob_writev
## Summary
Performs a mediated write to an IOBuffer region.
## Declaration
```c
#include <zircon/syscalls/iob.h>
zx_status_t zx_iob_write(zx_handle_t handle,
zx_iob_write_options_t options,
uint32_t region_index,
const zx_iovec_t* vectors,
size_t num_vectors);
```
## Description
Performs a mediated write to an IOBuffer region.
`options` must be zero.
The IOBuffer handle used to interact with the region must admit mediated write access.
There is a limit of 65535 bytes including any headers that the discipline might mandate, and
there can be no more than 8 vectors.
## Return value
On success, the data is written to the specified region according to the semantics of the
discipline.
## Errors
`ZX_ERR_ACCESS_DENIED` The IOB handle does not have write permissions,
or the corresponding region does not have mediated write permissions.
`ZX_ERR_BAD_HANDLE` *handle* is not a valid handle.
`ZX_ERR_INVALID_ARGS` `options` was nonzero (there are no non-default options supported at
this time), the amount of data to write exceeds the limit, or the vectors are invalid.
`ZX_ERR_IO_DATA_INTEGRITY` The region has been corrupted.
`ZX_ERR_NOT_FOUND` A vector is invalid (e.g. points to invalid memory).
`ZX_ERR_NO_SPACE` The region has insufficient space to write the message.
`ZX_ERR_OUT_OF_RANGE` `region_index` exceeded the maximum region index.
`ZX_ERR_WRONG_TYPE` The handle is not an IOBuffer handle, or the corresponding region is not
of the required discipline.