<!--
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_system_barrier

## Summary

Issue a barrier on other running threads.

## Declaration

```c
#include <zircon/syscalls-next.h>

zx_status_t zx_system_barrier(uint32_t options);
```

## Description

Issues a barrier of the requested type on all running threads.

### Options: types of barriers

#### ZX_SYSTEM_BARRIER_DATA_MEMORY

This issues a data memory barrier on all running threads.

#### ZX_SYSTEM_BARRIER_INSTRUCTION_STREAM

This issues a memory barrier and serializes the instruction stream on all running threads.

## Rights

This operation does not require any rights.

## Return value

`ZX_OK` if the requested barriers were issued.

## Errors

`ZX_ERR_INVALID_ARGS` *options* contains invalid options.
