blob: e8bf5276ea01db810b9e0de736897763fccbc430 [file] [log] [blame] [view]
# zx_vmar_op_range
## NAME
<!-- Updated by update-docs-from-fidl, do not edit. -->
Perform an operation on VMOs mapped into this VMAR.
## SYNOPSIS
<!-- Updated by update-docs-from-fidl, do not edit. -->
```c
#include <zircon/syscalls.h>
zx_status_t zx_vmar_op_range(zx_handle_t handle,
uint32_t op,
uint64_t address,
uint64_t size,
void* buffer,
size_t buffer_size);
```
## DESCRIPTION
`zx_vmo_op_range()` performs operation *op* on VMOs mapped in the range *address* to *address*+*size*.
*address* and *size* must fall entirely within this VMAR, and must meet the alignment requirements specified for *op* by [`zx_vmo_op_range()`].
*buffer* and *buffer_size* are currently unused, and must be empty
The supported operations are:
**ZX_VMO_OP_DECOMMIT** - Requires the **ZX_RIGHT_WRITE** right, and applies only to writable mappings.
The operation's semantics are otherwise as described by [`zx_vmo_op_range()`].
## RIGHTS
<!-- Updated by update-docs-from-fidl, do not edit. -->
If *op* is **ZX_VMO_OP_DECOMMIT**, affected mappings must be writable.
## RETURN VALUE
`zx_vmar_op_range()` returns **ZX_OK** on success. In the event of failure, a negative error value is returned.
## ERRORS
**ZX_ERR_ACCESS_DENIED** *handle*, or one of the affected VMO mappings, does not have sufficient rights to perform the operation.
**ZX_ERR_BAD_HANDLE** *handle* is not a valid handle.
**ZX_ERR_BAD_STATE** *handle* is not a live VMAR, or the range specified by *address* and *size* spans un-mapped pages.
**ZX_ERR_INVALID_ARGS** *buffer* is non-null, or *buffer_size* is non-zero, *op* is not a valid operation, *size* is zero, or *address* was not page-aligned.
**ZX_ERR_NOT_SUPPORTED** *op* was not **ZX_VMO_OP_DECOMMIT**, or one or more mapped VMOs do not support the requested *op*.
**ZX_ERR_OUT_OF_RANGE** The range specified by *address* and *size* is not wholy within the VM address range specified by *handle*.
**ZX_ERR_WRONG_TYPE** *handle* is not a VMAR handle.
## SEE ALSO
- [`zx_vmar_map()`]
- [`zx_vmar_unmap()`]
- [`zx_vmo_op_range()`]
<!-- References updated by update-docs-from-fidl, do not edit. -->
[`zx_vmar_map()`]: vmar_map.md
[`zx_vmar_unmap()`]: vmar_unmap.md
[`zx_vmo_op_range()`]: vmo_op_range.md