tbm_bufmgr: lock/unlock tbm_bufmgr_mutex at tbm_bufmgr function
[platform/core/uifw/libtbm.git] / src / tbm_bufmgr_int.h
index c51ab88..97ae0e5 100644 (file)
@@ -55,10 +55,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <tbm_surface_internal.h>
 #include <tbm_surface_queue.h>
 #include <tbm_log.h>
-#include <tbm_bufmgr_backend.h>
-#include <tbm_backend.h>
 #include <tbm_error.h>
-#include <hal/hal-tbm.h>
+#include "tbm_module.h"
 
 extern tbm_bufmgr gBufMgr;
 extern int b_dump_queue;
@@ -172,31 +170,6 @@ 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
  */
@@ -206,14 +179,13 @@ struct _tbm_bo {
        int ref_cnt;                     /* ref count of bo */
        int flags;                       /* TBM_BO_FLAGS :bo memory type */
        struct list_head user_data_list; /* list of the user_date in bo */
-       void *priv;                      /* bo private  (will be DEPRECATED) */
        struct list_head item_link;      /* link of bo */
        tbm_surface_h surface;           /* tbm_surface */
        int lock_cnt;                    /* lock count of 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 */
+       tbm_bo_data *bo_data;            /* bo data of the module */
+       int get_from_surface_data;       /* bo_data has be detroyed by surface_data */
 };
 
 /**
@@ -232,23 +204,7 @@ 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) */
-
-       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 *module;               /* tbm module information */
 };
 
 /**
@@ -291,7 +247,7 @@ struct _tbm_surface {
                int height;
        } damage;
 
-       hal_tbm_surface *hal_surface; // hal_tbm_surface
+       tbm_surface_data *surface_data; /* surface data of the module */
 };
 
 typedef struct {
@@ -351,32 +307,10 @@ void _tbm_bufmgr_mutex_lock(void);
 void _tbm_bufmgr_mutex_unlock(void);
 tbm_bo tbm_bufmgr_internal_find_bo(tbm_bufmgr bufmgr, tbm_bo bo);
 
-tbm_bo tbm_bufmgr_internal_alloc_bo(tbm_bufmgr bufmgr, int size, int flags, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_alloc_bo(tbm_bufmgr bufmgr, int size, int flags);
 tbm_bo tbm_bufmgr_internal_alloc_bo_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_bufmgr_internal_alloc_bo_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags);
-tbm_bo tbm_bufmgr_internal_import_bo_with_key(tbm_bufmgr bufmgr, tbm_key key, tbm_error_e *error);
-tbm_bo tbm_bufmgr_internal_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd, tbm_error_e *error);
-
-/* 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_error_e          tbm_module_bufmgr_get_supported_formats(tbm_module *module, uint32_t **formats, uint32_t *num);
-tbm_error_e          tbm_module_bufmgr_get_plane_data(tbm_module *module, int format, int plane_idx, uint32_t w, uint32_t h, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx);
-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);
-tbm_backend_bo_data *tbm_module_bufmgr_bo_import_fd(tbm_module *module, tbm_bo bo, tbm_fd fd, tbm_error_e *error);
-tbm_backend_bo_data *tbm_module_bufmgr_bo_import_key(tbm_module *module, tbm_bo bo, tbm_key key, tbm_error_e *error);
-
-void          tbm_module_bo_free(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int get_from_hal_surface);
-int           tbm_module_bo_get_size(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error);
-int           tbm_module_bo_get_memory_types(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error);
-tbm_bo_handle tbm_module_bo_get_handle(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, tbm_error_e *error);
-tbm_bo_handle tbm_module_bo_map(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, int opt, tbm_error_e *error);
-tbm_error_e   tbm_module_bo_unmap(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data);
-tbm_error_e   tbm_module_bo_lock(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, int opt);
-tbm_error_e   tbm_module_bo_unlock(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data);
+tbm_bo tbm_bufmgr_internal_alloc_bo_with_bo_data(tbm_bufmgr bufmgr, tbm_bo_data *bo_data, int flags, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_import_bo_with_key(tbm_bufmgr bufmgr, tbm_key key);
+tbm_bo tbm_bufmgr_internal_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd);
 
 #endif /* _TBM_BUFMGR_INT_H_ */