1 #ifndef SUNXI_HAL_TIMER_H 2 #define SUNXI_HAL_TIMER_H 3 4 #ifdef __cplusplus 5 extern "C" 6 { 7 #endif 8 9 #include <stddef.h> 10 #include <stdint.h> 11 12 #ifdef CONFIG_KERNEL_FREERTOS 13 14 #else 15 16 #include <rtthread.h> 17 18 typedef rt_timer_t osal_timer_t; 19 typedef void (*timeout_func)(void *parameter); 20 21 #define OSAL_TIMER_FLAG_DEACTIVATED RT_TIMER_FLAG_DEACTIVATED 22 #define OSAL_TIMER_FLAG_ACTIVATED RT_TIMER_FLAG_ACTIVATED 23 #define OSAL_TIMER_FLAG_ONE_SHOT RT_TIMER_FLAG_ONE_SHOT 24 #define OSAL_TIMER_FLAG_PERIODIC RT_TIMER_FLAG_PERIODIC 25 26 #define OSAL_TIMER_FLAG_HARD_TIMER RT_TIMER_FLAG_HARD_TIMER 27 #define OSAL_TIMER_FLAG_SOFT_TIMER RT_TIMER_FLAG_SOFT_TIMER 28 29 #define OSAL_TIMER_CTRL_SET_TIME RT_TIMER_CTRL_SET_TIME 30 #define OSAL_TIMER_CTRL_GET_TIME RT_TIMER_CTRL_GET_TIME 31 #define OSAL_TIMER_CTRL_SET_ONESHOT RT_TIMER_CTRL_SET_ONESHOT 32 #define OSAL_TIMER_CTRL_SET_PERIODIC RT_TIMER_CTRL_SET_PERIODIC 33 #define OSAL_TIMER_CTRL_GET_STATE RT_TIMER_CTRL_GET_STATE 34 35 osal_timer_t osal_timer_create(const char *name, 36 timeout_func timeout, 37 void *parameter, 38 unsigned int time, 39 unsigned char flag); 40 41 int osal_timer_delete(osal_timer_t timer); 42 int osal_timer_start(osal_timer_t timer); 43 int osal_timer_stop(osal_timer_t timer); 44 int osal_timer_control(osal_timer_t timer, int cmd, void *arg); 45 46 #endif 47 48 int hal_sleep(unsigned int secs); 49 int hal_usleep(unsigned int usecs); 50 int hal_msleep(unsigned int msecs); 51 void udelay(unsigned int us); 52 53 54 #ifdef __cplusplus 55 } 56 #endif 57 #endif 58