tbm_bufmgr: move copy functions for module information to tbm_bufmgr
[platform/core/uifw/libtbm.git] / src / tbm_bufmgr.c
index 38ec943..ec13191 100644 (file)
@@ -33,7 +33,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #include "tbm_bufmgr.h"
 #include "tbm_bufmgr_int.h"
-#include "tbm_bufmgr_backend.h"
 #include "tbm_drm_helper.h"
 #include "list.h"
 
@@ -169,6 +168,41 @@ _tbm_util_get_appname_from_pid(long pid, char *str)
        snprintf(str, sizeof(cmdline), "%s", cmdline);
 }
 
+static void
+_tbm_bufmgr_copy_module_data(tbm_bufmgr bufmgr, tbm_module *module, int reset)
+{
+       if (!reset) {
+               bufmgr->module_data = module->module_data;
+               bufmgr->backend = module->backend;
+
+               bufmgr->backend_module_data = module->backend_module_data;
+               bufmgr->bufmgr_data = module->bufmgr_data;
+               bufmgr->bufmgr_func = module->bufmgr_func;
+               bufmgr->bo_func = module->bo_func;
+
+               bufmgr->use_hal_tbm = module->use_hal_tbm;
+               bufmgr->auth_wl_socket_created = module->auth_wl_socket_created;
+               bufmgr->auth_fd = module->auth_fd;
+               bufmgr->hal_backend = module->hal_backend;
+               bufmgr->hal_bufmgr = module->hal_bufmgr;
+       } else {
+               bufmgr->module_data = NULL;
+               bufmgr->backend = NULL;
+
+               bufmgr->backend_module_data = NULL;
+               bufmgr->bufmgr_data = NULL;
+               bufmgr->bufmgr_func = NULL;
+               bufmgr->bo_func = NULL;
+
+               bufmgr->use_hal_tbm = 0;
+               bufmgr->auth_wl_socket_created = 0;
+               bufmgr->auth_fd = -1;
+               bufmgr->hal_backend = NULL;
+               bufmgr->hal_bufmgr = NULL;
+       }
+}
+
+
 /* LCOV_EXCL_STOP */
 
 static tbm_bufmgr
@@ -245,6 +279,9 @@ _tbm_bufmgr_init(int fd, int server)
 
        }
 
+       // TODO: this is temporary. it will be removed after finishing refactoring the tbm_module.
+       _tbm_bufmgr_copy_module_data(gBufMgr, gBufMgr->module, 0);
+
        /* check the essential capabilities of tbm_module */
        gBufMgr->capabilities = tbm_module_bufmgr_get_capabilities(gBufMgr->module);
        if (gBufMgr->capabilities == HAL_TBM_BUFMGR_CAPABILITY_NONE) {
@@ -370,6 +407,9 @@ tbm_bufmgr_deinit(tbm_bufmgr bufmgr)
 
        tbm_module_unload(bufmgr->module);
 
+       // TODO: this is temporary. it will be removed after finishing refactoring the tbm_module.
+       _tbm_bufmgr_copy_module_data(bufmgr, bufmgr->module, 1);
+
        if (bufmgr->fd > 0)
                close(bufmgr->fd);