diff options
| author | Jeff Epler <jepler@gmail.com> | 2019-11-20 10:15:33 -0600 |
|---|---|---|
| committer | Jeff Epler <jepler@gmail.com> | 2019-11-20 14:37:13 -0600 |
| commit | a9baa0f954ec757ef1e3990af136a4f0b3cb2b1e (patch) | |
| tree | 752706bfc22dac4c2203da0ad7928baaa7145ace /supervisor/shared | |
| parent | 70719597ab7b3785a6641b08ef3cb82d9b6b459b (diff) | |
supervisor: tick: document
Diffstat (limited to 'supervisor/shared')
| -rw-r--r-- | supervisor/shared/tick.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/supervisor/shared/tick.h b/supervisor/shared/tick.h index eb2af29ca..e747de2d8 100644 --- a/supervisor/shared/tick.h +++ b/supervisor/shared/tick.h @@ -29,9 +29,32 @@ #include <stdint.h> +/** @brief To be called once every ms + * + * The port must call supervisor_tick once per millisecond to perform regular tasks. + * This is called from the SysTick interrupt or similar, and is safe to call in an + * interrupt context. + */ extern void supervisor_tick(void); +/** @brief Get the lower 32 bits of the time in milliseconds + * + * This can be more efficient than supervisor_ticks_ms64, for sites where a wraparound + * of ~49.5 days is not harmful. + */ extern uint32_t supervisor_ticks_ms32(void); +/** @brief Get the full time in milliseconds + * + * Because common ARM mcus cannot atomically work with 64-bit quantities, this + * function must briefly disable interrupts in order to return the value. If + * only relative durations of less than about ~49.5 days need to be considered, + * then it may be possible to use supervisor_ticks_ms64 instead. + */ extern uint64_t supervisor_ticks_ms64(void); +/** @brief Run background ticks, but only about every millisecond. + * + * Normally, this is not called directly. Instead use the RUN_BACKGROUND_TASKS + * macro. + */ extern void supervisor_run_background_if_tick(void); #endif |
