tbm_module: make tbm_module_bufmgr_bind_native_display
[platform/core/uifw/libtbm.git] / src / tbm_bufmgr_int.h
index b6c97c7..915cd1b 100644 (file)
@@ -170,6 +170,31 @@ struct list_head {
        struct list_head *next;
 };
 
+typedef enum _tbm_module_type {
+       TBM_MODULE_TYPE_NONE,
+       TBM_MODULE_TYPE_HAL_TBM,
+       TBM_MODULE_TYPE_TBM_BACKEND,
+       TBM_MODULE_TYPE_BUFMGR_BACKEND,
+} tbm_module_type;
+
+typedef struct _tbm_module {
+       tbm_module_type type;
+
+       void *module_data;                         /* backend module */
+       tbm_bufmgr_backend   backend;              /* bufmgr backend (will be DEPRECATED) */
+
+       tbm_backend_module       *backend_module_data;  /* backend module data */
+       tbm_backend_bufmgr_data  *bufmgr_data;          /* backend data of the backend module */
+       tbm_backend_bufmgr_func  *bufmgr_func;          /* backend functions for bufmgr */
+       tbm_backend_bo_func      *bo_func;              /* backend functions for bo */
+
+       int use_hal_tbm;                                /* use hal-api-tbm */
+       int auth_wl_socket_created;                     /* create wayland socket for authenticated drm_fd */
+       int auth_fd;
+       hal_tbm_backend          *hal_backend;          /* hal-api-tbm backend */
+       hal_tbm_bufmgr           *hal_bufmgr;           /* hal-api-tbm bufmgr */
+} tbm_module;
+
 /**
  * @brief tbm_bo : buffer object of Tizen Buffer Manager
  */
@@ -186,6 +211,7 @@ struct _tbm_bo {
        unsigned int map_cnt;            /* device map count */
 
        tbm_backend_bo_data *bo_data;    /* bo data of the backend module */
+       int get_from_hal_surface;        /* bo_data has be detroyed by hal backend */
 };
 
 /**
@@ -204,6 +230,10 @@ struct _tbm_bufmgr {
        struct list_head surf_queue_list; /* list of surface queues belonging to bufmgr */
        struct list_head debug_key_list;  /* list of debug data key list belonging to bufmgr */
 
+       //TODO: tbm_module *module;
+       tbm_module *module;               /* tbm module */
+
+       //TODO: replace this to data in tbm_module *module
        void *module_data;                         /* backend module */
        tbm_bufmgr_backend   backend;              /* bufmgr backend (will be DEPRECATED) */
 
@@ -316,11 +346,16 @@ void _tbm_set_last_result(tbm_error_e err);
 void _tbm_bufmgr_mutex_lock(void);
 void _tbm_bufmgr_mutex_unlock(void);
 
-tbm_bo tbm_bo_alloc_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp,
-                                               int height, tbm_bo_memory_type flags, tbm_error_e *error);
-tbm_bo tbm_bo_alloc_with_tiled_format(tbm_bufmgr bufmgr, int width, int height, int bpp, int format,
-                                                       tbm_bo_memory_type flags, int bo_idx, tbm_error_e *error);
-tbm_bo tbm_bo_alloc_with_surface(tbm_bufmgr bufmgr, int width, int height, int format, int flags, int bo_idx);
+tbm_bo tbm_bo_alloc_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, int height, tbm_bo_memory_type flags, tbm_error_e *error);
 tbm_bo tbm_bo_alloc_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags);
 
-#endif                                                 /* _TBM_BUFMGR_INT_H_ */
+/* tbm_module functions */
+tbm_module *tbm_module_load(int fd);
+void        tbm_module_unload(tbm_module *module);
+
+int                  tbm_module_bufmgr_get_capabilities(tbm_module *module, tbm_error_e *error);
+tbm_error_e          tbm_module_bufmgr_bind_native_display(tbm_module *module, void *native_display);
+tbm_backend_bo_data *tbm_module_bufmgr_bo_alloc(tbm_module *module, tbm_bo bo, int size, int flags, tbm_error_e *error);
+tbm_backend_bo_data *tbm_module_bufmgr_bo_alloc_with_format(tbm_module *module, int format, int bo_idx, int width, int height, int bpp, tbm_bo_memory_type flags, tbm_error_e *error);
+
+#endif /* _TBM_BUFMGR_INT_H_ */