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
*/
unsigned int map_cnt; /* device map count */
tbm_backend_bo_data *bo_data; /* bo data of the backend module */
- int allocated_hal_tbm_bo; /* this bo is by calling hal_tbm_bo_alloc */
+ int get_from_hal_surface; /* bo_data has be detroyed by hal backend */
};
/**
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) */
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_ */