/* * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef _PICO_TIMEOUT_HELPER_H #define _PICO_TIMEOUT_HELPER_H #include "pico/time.h" #ifdef __cplusplus extern "C" { #endif typedef struct timeout_state { absolute_time_t next_timeout; uint64_t param; } timeout_state_t; typedef bool (*check_timeout_fn)(timeout_state_t *ts, bool reset); check_timeout_fn init_single_timeout_until(timeout_state_t *ts, absolute_time_t target); check_timeout_fn init_per_iteration_timeout_us(timeout_state_t *ts, uint64_t per_iteration_timeout_us); #ifdef __cplusplus } #endif #endif