blob: b4264afa67f544e6cbe53cdc66f7369ed454a8b9 [file] [log] [blame] [view]
<!--
Copyright 2022 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_get_features
## Summary
Get supported hardware capabilities.
## Declaration
```c
#include <zircon/syscalls.h>
zx_status_t zx_system_get_features(uint32_t kind, uint32_t* features);
```
## Description
`zx_system_get_features()` populates *features* with a bit mask of
hardware-specific features. *kind* indicates the specific type of features
to retrieve, e.g. **ZX_FEATURE_KIND_CPU**. The supported kinds and the meaning
of individual feature bits is hardware-dependent. **ZX_FEATURE_KIND_VM** is not
hardware-dependent and returns a bitset currently the only meaningful bit
is **ZX_VM_FEATURE_CAN_MAP_XOM** which is 1 if the system can map pages with
execute only permission.
## Rights
TODO(fxbug.dev/32253)
## Return value
`zx_system_get_features()` returns **ZX_OK** on success.
## Errors
**ZX_ERR_NOT_SUPPORTED** The requested feature kind is not available on this
platform.
## Notes
Refer to [Install Fuchsia on a device](/docs/development/hardware/README.md)
for supported processor architectures.
Refer to [zircon/features.h](/zircon/system/public/zircon/features.h) for kinds
of features and individual feature bits.
## See also
- [`zx_system_get_num_cpus()`]
- [`zx_system_get_physmem()`]
[`zx_system_get_num_cpus()`]: system_get_num_cpus.md
[`zx_system_get_physmem()`]: system_get_physmem.md