add tbm_sync to support for the timeline and the fence
[platform/core/uifw/libtbm.git] / src / tbm_sync.h
1 #ifndef _TBM_SYNC_H_
2 #define _TBM_SYNC_H_
3
4 typedef enum {
5         TBM_SYNC_ERROR_NONE = 0,                                /**< Successful */
6         TBM_SYNC_ERROR_INVALID_PARAMETER = -1,  /**< Invalid parameter */
7         TBM_SYNC_ERROR_INVALID_OPERATION = -2,  /**< Invalid Operation */
8 } tbm_sync_error_e;
9
10 typedef void *tbm_sync_timeline_h;
11 typedef void *tbm_sync_fence_h;
12
13 tbm_sync_timeline_h tbm_sync_timeline_create(tbm_sync_error_e *error);
14 tbm_sync_error_e    tbm_sync_timeline_destroy(tbm_sync_timeline_h timeline);
15 tbm_sync_timeline_h tbm_sync_timeline_import(int fd, tbm_sync_error_e *error);
16 tbm_sync_error_e    tbm_sync_timeline_increase_count(tbm_sync_timeline_h timeline, unsigned int interval);
17 unsigned int        tbm_sync_timeline_get_cur_count(tbm_sync_timeline_h timeline, tbm_sync_error_e *error);
18
19 tbm_sync_fence_h    tbm_sync_fence_create(tbm_sync_timeline_h timeline, const char *name, unsigned int count_val, tbm_sync_error_e *error);
20 tbm_sync_error_e    tbm_sync_fence_destroy(tbm_sync_fence_h fence);
21 tbm_sync_error_e    tbm_sync_fence_wait(tbm_sync_fence_h fence, int timeout);
22 tbm_sync_fence_h    tbm_sync_fence_merge(tbm_sync_fence_h fence1, tbm_sync_fence_h fence2, const char *name, tbm_sync_error_e *error);
23 unsigned int        tbm_sync_fence_get_count_val(tbm_sync_fence_h fence, tbm_sync_error_e *error);
24
25 #endif /* _TBM_SYNC_H */