tbm_bufmgr: lock/unlock tbm_bufmgr_mutex at tbm_bufmgr function
[platform/core/uifw/libtbm.git] / src / tbm_bufmgr_backend.c
index 87d3c78..ff6050f 100644 (file)
@@ -62,6 +62,8 @@ void tbm_backend_free(tbm_bufmgr_backend backend)
 
 int tbm_backend_init(tbm_bufmgr bufmgr, tbm_bufmgr_backend backend)
 {
+       tbm_module *module = NULL;
+
        if (!bufmgr) {
                TBM_ERR("error: fail to init tbm backend... bufmgr is null\n");
                return 0;
@@ -72,40 +74,46 @@ int tbm_backend_init(tbm_bufmgr bufmgr, tbm_bufmgr_backend backend)
                return 0;
        }
 
-       bufmgr->backend = backend;
-       bufmgr->capabilities = TBM_BUFMGR_CAPABILITY_NONE;
+       module = (tbm_module *)bufmgr;
+
+       module->backend = backend;
+
+#if 0 // DEPRECATED
+       module->capabilities = TBM_BUFMGR_CAPABILITY_NONE;
 
-       if (bufmgr->backend->bo_import && bufmgr->backend->bo_export)
-               bufmgr->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_KEY;
+       if (module->backend->bo_import && module->backend->bo_export)
+               module->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_KEY;
 
-       if (bufmgr->backend->bo_import_fd && bufmgr->backend->bo_export_fd)
-               bufmgr->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_FD;
+       if (module->backend->bo_import_fd && module->backend->bo_export_fd)
+               module->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_FD;
+#endif
 
        return 1;
 }
 
 void *tbm_backend_get_bufmgr_priv(tbm_bo bo)
 {
-       tbm_bufmgr_backend backend = bo->bufmgr->backend;
+       tbm_bufmgr_backend backend = bo->bufmgr->module->backend;
 
        return backend->priv;
 }
 
 void *tbm_backend_get_priv_from_bufmgr(tbm_bufmgr bufmgr)
 {
-       tbm_bufmgr_backend backend = bufmgr->backend;
+       tbm_module *module = (tbm_module *)bufmgr;
+       tbm_bufmgr_backend backend = module->backend;
 
        return backend->priv;
 }
 
 void tbm_backend_set_bo_priv(tbm_bo bo, void *bo_priv)
 {
-       bo->priv = bo_priv;
+       bo->bo_data->priv = bo_priv;
 }
 
 void *tbm_backend_get_bo_priv(tbm_bo bo)
 {
-       return bo->priv;
+       return bo->bo_data->priv;
 }
 
 int tbm_backend_is_display_server(void)