6#ifndef CAFFEINE_SAL_UTL_TIMEKEEPING_H
7#define CAFFEINE_SAL_UTL_TIMEKEEPING_H
20#define CFN_SAL_UTL_TYPE_TIMEKEEPING CFN_SAL_TYPE('T', 'I', 'M')
76 uint32_t peripheral_id,
84 CFN_HAL_POPULATE_DRIVER(
100 return CFN_HAL_ERROR_BAD_PARAM;
102 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
110 return CFN_HAL_ERROR_BAD_PARAM;
118 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
124 time_t *timestamp_out)
126 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
133 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
140 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
148 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
Core definitions and macros for Caffeine SAL.
#define CFN_SAL_CREATE_DRIVER_TYPE(prefix, config_type, api_type, phy_type, cb_type)
Definition cfn_sal.h:38
cfn_hal_error_code_t cfn_sal_utl_timekeeping_construct(cfn_sal_utl_timekeeping_t *driver, const cfn_sal_utl_timekeeping_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_utl_timekeeping_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_get_time(cfn_sal_utl_timekeeping_t *driver, time_t *timestamp_out)
Definition cfn_sal_utl_timekeeping.h:123
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_init(cfn_sal_utl_timekeeping_t *driver)
Definition cfn_sal_utl_timekeeping.h:96
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_sync_now(cfn_sal_utl_timekeeping_t *driver)
Definition cfn_sal_utl_timekeeping.h:138
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_get_ms(cfn_sal_utl_timekeeping_t *driver, uint64_t *ms_out)
Definition cfn_sal_utl_timekeeping.h:131
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_deinit(cfn_sal_utl_timekeeping_t *driver)
Definition cfn_sal_utl_timekeeping.h:106
struct cfn_sal_utl_timekeeping_s cfn_sal_utl_timekeeping_t
Definition cfn_sal_utl_timekeeping.h:40
void(* cfn_sal_utl_timekeeping_callback_t)(cfn_sal_utl_timekeeping_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_utl_timekeeping.h:43
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_set_time(cfn_sal_utl_timekeeping_t *driver, time_t timestamp)
Definition cfn_sal_utl_timekeeping.h:115
CFN_HAL_VMT_CHECK(struct cfn_sal_utl_timekeeping_api_s)
cfn_sal_utl_timekeeping_event_t
Definition cfn_sal_utl_timekeeping.h:25
@ CFN_SAL_UTL_TIMEKEEPING_EVENT_SYNC_FAILED
Definition cfn_sal_utl_timekeeping.h:28
@ CFN_SAL_UTL_TIMEKEEPING_EVENT_SYNC_OK
Definition cfn_sal_utl_timekeeping.h:27
@ CFN_SAL_UTL_TIMEKEEPING_EVENT_NONE
Definition cfn_sal_utl_timekeeping.h:26
cfn_hal_error_code_t cfn_sal_utl_timekeeping_destruct(cfn_sal_utl_timekeeping_t *driver)
CFN_HAL_INLINE void cfn_sal_utl_timekeeping_populate(cfn_sal_utl_timekeeping_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_utl_timekeeping_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_utl_timekeeping_config_t *config, cfn_sal_utl_timekeeping_callback_t callback, void *user_arg)
Definition cfn_sal_utl_timekeeping.h:75
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_is_synchronized(cfn_sal_utl_timekeeping_t *driver, bool *is_sync_out)
Definition cfn_sal_utl_timekeeping.h:145
#define CFN_SAL_UTL_TYPE_TIMEKEEPING
Definition cfn_sal_utl_timekeeping.h:20
Generic physical mapping for services.
Definition cfn_sal_types.h:26
Timekeeping Virtual Method Table (VMT).
Definition cfn_sal_utl_timekeeping.h:52
cfn_hal_error_code_t(* sync_now)(cfn_sal_utl_timekeeping_t *driver)
Definition cfn_sal_utl_timekeeping.h:61
cfn_hal_api_base_t base
Definition cfn_sal_utl_timekeeping.h:53
cfn_hal_error_code_t(* set_time)(cfn_sal_utl_timekeeping_t *driver, time_t timestamp)
Definition cfn_sal_utl_timekeeping.h:56
cfn_hal_error_code_t(* get_ms)(cfn_sal_utl_timekeeping_t *driver, uint64_t *ms_out)
Definition cfn_sal_utl_timekeeping.h:58
cfn_hal_error_code_t(* get_time)(cfn_sal_utl_timekeeping_t *driver, time_t *timestamp_out)
Definition cfn_sal_utl_timekeeping.h:57
cfn_hal_error_code_t(* is_synchronized)(cfn_sal_utl_timekeeping_t *driver, bool *is_sync_out)
Definition cfn_sal_utl_timekeeping.h:62
Definition cfn_sal_utl_timekeeping.h:34
uint32_t sync_interval_s
Definition cfn_sal_utl_timekeeping.h:35
bool use_rtc_fallback
Definition cfn_sal_utl_timekeeping.h:36
void * custom
Definition cfn_sal_utl_timekeeping.h:37