caffeine-sal 0.1.17
Header-only polymorphic middleware services layer for the Caffeine Framework
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
cfn_sal_utl_timekeeping.h File Reference

High-level timekeeping and epoch management service. More...

#include "cfn_sal.h"
#include <time.h>

Go to the source code of this file.

Data Structures

struct  cfn_sal_utl_timekeeping_config_t
 
struct  cfn_sal_utl_timekeeping_api_s
 Timekeeping Virtual Method Table (VMT). More...
 

Macros

#define CFN_SAL_UTL_TYPE_TIMEKEEPING   CFN_SAL_TYPE('T', 'I', 'M')
 

Typedefs

typedef struct cfn_sal_utl_timekeeping_s cfn_sal_utl_timekeeping_t
 
typedef struct cfn_sal_utl_timekeeping_api_s cfn_sal_utl_timekeeping_api_t
 
typedef void(* cfn_sal_utl_timekeeping_callback_t) (cfn_sal_utl_timekeeping_t *driver, uint32_t event, uint32_t error, void *user_arg)
 

Enumerations

enum  cfn_sal_utl_timekeeping_event_t { CFN_SAL_UTL_TIMEKEEPING_EVENT_NONE = 0 , CFN_SAL_UTL_TIMEKEEPING_EVENT_SYNC_OK = CFN_HAL_BIT(0) , CFN_SAL_UTL_TIMEKEEPING_EVENT_SYNC_FAILED = CFN_HAL_BIT(1) }
 

Functions

 CFN_HAL_VMT_CHECK (struct cfn_sal_utl_timekeeping_api_s)
 
 CFN_SAL_CREATE_DRIVER_TYPE (sal_utl_timekeeping, cfn_sal_utl_timekeeping_config_t, cfn_sal_utl_timekeeping_api_t, cfn_sal_phy_t, cfn_sal_utl_timekeeping_callback_t)
 
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)
 
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_error_code_t cfn_sal_utl_timekeeping_destruct (cfn_sal_utl_timekeeping_t *driver)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_init (cfn_sal_utl_timekeeping_t *driver)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_deinit (cfn_sal_utl_timekeeping_t *driver)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_set_time (cfn_sal_utl_timekeeping_t *driver, time_t timestamp)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_get_time (cfn_sal_utl_timekeeping_t *driver, time_t *timestamp_out)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_get_ms (cfn_sal_utl_timekeeping_t *driver, uint64_t *ms_out)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_sync_now (cfn_sal_utl_timekeeping_t *driver)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_is_synchronized (cfn_sal_utl_timekeeping_t *driver, bool *is_sync_out)
 

Detailed Description

High-level timekeeping and epoch management service.

Macro Definition Documentation

◆ CFN_SAL_UTL_TYPE_TIMEKEEPING

#define CFN_SAL_UTL_TYPE_TIMEKEEPING   CFN_SAL_TYPE('T', 'I', 'M')

Typedef Documentation

◆ cfn_sal_utl_timekeeping_api_t

◆ cfn_sal_utl_timekeeping_callback_t

typedef void(* cfn_sal_utl_timekeeping_callback_t) (cfn_sal_utl_timekeeping_t *driver, uint32_t event, uint32_t error, void *user_arg)

◆ cfn_sal_utl_timekeeping_t

typedef struct cfn_sal_utl_timekeeping_s cfn_sal_utl_timekeeping_t

Enumeration Type Documentation

◆ cfn_sal_utl_timekeeping_event_t

Enumerator
CFN_SAL_UTL_TIMEKEEPING_EVENT_NONE 
CFN_SAL_UTL_TIMEKEEPING_EVENT_SYNC_OK 
CFN_SAL_UTL_TIMEKEEPING_EVENT_SYNC_FAILED 

Function Documentation

◆ CFN_HAL_VMT_CHECK()

CFN_HAL_VMT_CHECK ( struct cfn_sal_utl_timekeeping_api_s  )

◆ CFN_SAL_CREATE_DRIVER_TYPE()

CFN_SAL_CREATE_DRIVER_TYPE ( sal_utl_timekeeping  ,
cfn_sal_utl_timekeeping_config_t  ,
cfn_sal_utl_timekeeping_api_t  ,
cfn_sal_phy_t  ,
cfn_sal_utl_timekeeping_callback_t   
)

◆ cfn_sal_utl_timekeeping_construct()

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_sal_utl_timekeeping_deinit()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_deinit ( cfn_sal_utl_timekeeping_t driver)

◆ cfn_sal_utl_timekeeping_destruct()

cfn_hal_error_code_t cfn_sal_utl_timekeeping_destruct ( cfn_sal_utl_timekeeping_t driver)

◆ cfn_sal_utl_timekeeping_get_ms()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_get_ms ( cfn_sal_utl_timekeeping_t driver,
uint64_t *  ms_out 
)

◆ cfn_sal_utl_timekeeping_get_time()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_get_time ( cfn_sal_utl_timekeeping_t driver,
time_t *  timestamp_out 
)

◆ cfn_sal_utl_timekeeping_init()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_init ( cfn_sal_utl_timekeeping_t driver)

◆ cfn_sal_utl_timekeeping_is_synchronized()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_is_synchronized ( cfn_sal_utl_timekeeping_t driver,
bool *  is_sync_out 
)

◆ cfn_sal_utl_timekeeping_populate()

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 
)

◆ cfn_sal_utl_timekeeping_set_time()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_set_time ( cfn_sal_utl_timekeeping_t driver,
time_t  timestamp 
)

◆ cfn_sal_utl_timekeeping_sync_now()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_timekeeping_sync_now ( cfn_sal_utl_timekeeping_t driver)