blob: 8d638b11020c4ad64e735d21f52bd077a30cc76a [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_ticks_get
## Summary
Read the number of high-precision timer ticks since boot, not including
time spent suspended.
## Declaration
```c
#include <zircon/syscalls.h>
zx_instant_mono_ticks_t zx_ticks_get(void);
```
## Description
`zx_ticks_get()` returns the number of high-precision timer ticks since boot,
not including time spent suspended.
These ticks may be processor cycles, high speed timer, profiling timer, etc.
They are not guaranteed to continue advancing when the system is asleep.
## Rights
TODO(https://fxbug.dev/42107318)
## Return value
`zx_ticks_get()` returns the number of high-precision timer ticks since boot.
## Errors
`zx_ticks_get()` does not report any error conditions.
## Notes
The returned value may be highly variable. Factors that can affect it include:
- System sleep/wake (post implementation of
[RFC-0230](https://fuchsia.dev/fuchsia-src/contribute/governance/rfcs/0230_suspend_to_idle))
- Reset of the processor cycle counter
- Reordering of instructions (if required, use a memory barrier)
All Fuchsia systems use an invariant-rate ticks clock, which means that the
number of ticks per second is constant regardless of changes in processor
speed or migration between processors.
## See also
[ticks_per_second](ticks_per_second.md)