summaryrefslogtreecommitdiff
path: root/bsp/allwinner/libraries/sunxi-hal/include/osal/hal_timer.h
blob: 0eedd88c53315bfb5352771b02c82e400e135fdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef SUNXI_HAL_TIMER_H
#define SUNXI_HAL_TIMER_H

#ifdef __cplusplus
extern "C"
{
#endif

#include <stddef.h>
#include <stdint.h>

#ifdef CONFIG_KERNEL_FREERTOS

#else

#include <rtthread.h>

typedef rt_timer_t osal_timer_t;
typedef void (*timeout_func)(void *parameter);

#define OSAL_TIMER_FLAG_DEACTIVATED  RT_TIMER_FLAG_DEACTIVATED
#define OSAL_TIMER_FLAG_ACTIVATED    RT_TIMER_FLAG_ACTIVATED
#define OSAL_TIMER_FLAG_ONE_SHOT     RT_TIMER_FLAG_ONE_SHOT
#define OSAL_TIMER_FLAG_PERIODIC     RT_TIMER_FLAG_PERIODIC

#define OSAL_TIMER_FLAG_HARD_TIMER   RT_TIMER_FLAG_HARD_TIMER
#define OSAL_TIMER_FLAG_SOFT_TIMER   RT_TIMER_FLAG_SOFT_TIMER

#define OSAL_TIMER_CTRL_SET_TIME     RT_TIMER_CTRL_SET_TIME
#define OSAL_TIMER_CTRL_GET_TIME     RT_TIMER_CTRL_GET_TIME
#define OSAL_TIMER_CTRL_SET_ONESHOT  RT_TIMER_CTRL_SET_ONESHOT
#define OSAL_TIMER_CTRL_SET_PERIODIC RT_TIMER_CTRL_SET_PERIODIC
#define OSAL_TIMER_CTRL_GET_STATE    RT_TIMER_CTRL_GET_STATE

osal_timer_t osal_timer_create(const char *name,
                               timeout_func timeout,
                               void *parameter,
                               unsigned int time,
                               unsigned char flag);

int osal_timer_delete(osal_timer_t timer);
int osal_timer_start(osal_timer_t timer);
int osal_timer_stop(osal_timer_t timer);
int osal_timer_control(osal_timer_t timer, int cmd, void *arg);

#endif

int hal_sleep(unsigned int secs);
int hal_usleep(unsigned int usecs);
int hal_msleep(unsigned int msecs);
void udelay(unsigned int us);


#ifdef __cplusplus
}
#endif
#endif