You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MultiTimer/MultiTimer.h

39 lines
798 B
C

#ifndef _MULTI_TIMER_H_
#define _MULTI_TIMER_H_
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef uint64_t (*PlatformTicksFunction_t)(void);
typedef struct MultiTimerHandle MultiTimer;
typedef void (*MultiTimerCallback_t)(MultiTimer* timer, void* userData);
struct MultiTimerHandle {
MultiTimer* next;
uint64_t deadline;
uint32_t period;
MultiTimerCallback_t callback;
void* userData;
};
int MultiTimerInstall(PlatformTicksFunction_t ticksFunc);
int MultiTimerInit(MultiTimer* timer, uint32_t period, MultiTimerCallback_t cb, void* userData);
int MultiTimerStart(MultiTimer* timer, uint32_t startTime);
int MultiTimerStop(MultiTimer* timer);
void MultiTimerYield(void);
#ifdef __cplusplus
}
#endif
#endif