tbm_sync: implement tbm_sync
[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 int                 tbm_sync_timeline_export(tbm_sync_timeline_h timeline, tbm_sync_error_e *error);
17 tbm_sync_error_e    tbm_sync_timeline_increase_count(tbm_sync_timeline_h timeline, unsigned int interval);
18 unsigned int        tbm_sync_timeline_get_cur_count(tbm_sync_timeline_h timeline, tbm_sync_error_e *error);
19
20 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);
21 tbm_sync_error_e    tbm_sync_fence_destroy(tbm_sync_fence_h fence);
22 tbm_sync_error_e    tbm_sync_fence_wait(tbm_sync_fence_h fence, int timeout);
23 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);
24 unsigned int        tbm_sync_fence_get_count_val(tbm_sync_fence_h fence, tbm_sync_error_e *error);
25 tbm_sync_fence_h    tbm_sync_fence_import(int fd, tbm_sync_error_e *error);
26 int                 tbm_sync_fence_export(tbm_sync_fence_h fence, tbm_sync_error_e *error);
27
28 #endif /* _TBM_SYNC_H */