bufmgr: calls the new backend_funcs 70/172370/5
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 13 Mar 2018 10:54:05 +0000 (19:54 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Wed, 14 Mar 2018 09:39:29 +0000 (09:39 +0000)
Change-Id: I1207e83735e4e5cc78070e1b6186991fa2f21cbf

src/tbm_bufmgr.c

index 8988299de5cdddde6bfb56faa8b9425358f842b3..ab0f840b700f8c237cc1426361c4851e5eb5767b 100644 (file)
@@ -711,6 +711,8 @@ tbm_bufmgr_debug_tbm_info_get(tbm_bufmgr bufmgr)
        char *str;
        int len = 1024*4;
        int c = 0;
+       int size;
+       tbm_error_e error;
 
        pthread_mutex_lock(&gLock);
 
@@ -795,6 +797,12 @@ tbm_bufmgr_debug_tbm_info_get(tbm_bufmgr bufmgr)
                        TBM_SNRPRINTF(str, len, c, "%s\n", data);
 
                        for (i = 0; i < surf->num_bos; i++) {
+                               if (bufmgr->backend_module_data) {
+                                       size = bufmgr->bo_func->bo_get_size(surf->bos[i]->bo_data, &error);
+                                       if (error != TBM_ERROR_NONE)
+                                               TBM_WRN("fail to get the size of bo.");
+                               } else
+                                       size = bufmgr->backend->bo_size(surf->bos[i]);
                                TBM_SNRPRINTF(str, len, c, " bo:%-12p  %-26d%-10d\n",
                                          surf->bos[i],
                                          surf->bos[i]->ref_cnt,
@@ -814,11 +822,17 @@ tbm_bufmgr_debug_tbm_info_get(tbm_bufmgr bufmgr)
                tbm_bo bo = NULL;
 
                LIST_FOR_EACH_ENTRY(bo, &bufmgr->bo_list, item_link) {
+                       if (bufmgr->backend_module_data) {
+                               size = bufmgr->bo_func->bo_get_size(bo->bo_data, &error);
+                               if (error != TBM_ERROR_NONE)
+                                       TBM_WRN("fail to get the size of bo.");
+                       } else
+                               size = bufmgr->backend->bo_size(bo);
                        TBM_SNRPRINTF(str, len, c, "%-4d%-11p   %-4d  %-6d     %-5d     %-4u    %-3d  %-11p  %-4d\n",
                                  ++bo_cnt,
                                  bo,
                                  bo->ref_cnt,
-                                 bufmgr->backend->bo_size(bo) / 1024,
+                                 size / 1024,
                                  bo->lock_cnt,
                                  bo->map_cnt,
                                  bo->flags,
@@ -998,19 +1012,36 @@ tbm_bufmgr_bind_native_display(tbm_bufmgr bufmgr, void *native_display)
 
        TBM_BUFMGR_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(gBufMgr), 0);
 
-       if (!bufmgr->backend->bufmgr_bind_native_display) {
-               TBM_WRN("skip: tbm_bufmgr(%p) native_display(%p)\n",
-                               bufmgr, native_display);
-               _tbm_bufmgr_mutex_unlock();
-               return 1;
-       }
+       if (bufmgr->backend_module_data) {
+               if (!bufmgr->bufmgr_func->bufmgr_bind_native_display) {
+                       TBM_WRN("skip: tbm_bufmgr(%p) native_display(%p)\n",
+                                       bufmgr, native_display);
+                       _tbm_bufmgr_mutex_unlock();
+                       return 1;
+               }
 
-       ret = bufmgr->backend->bufmgr_bind_native_display(bufmgr, native_display);
-       if (!ret) {
-               TBM_ERR("error: tbm_bufmgr(%p) native_display(%p)\n",
-                               bufmgr, native_display);
-               _tbm_bufmgr_mutex_unlock();
-               return 0;
+               ret = bufmgr->bufmgr_func->bufmgr_bind_native_display(bufmgr->bufmgr_data, (tbm_native_display *)native_display);
+               if (!ret) {
+                       TBM_ERR("error: tbm_bufmgr(%p) native_display(%p)\n",
+                                       bufmgr, native_display);
+                       _tbm_bufmgr_mutex_unlock();
+                       return 0;
+               }
+       } else {
+               if (!bufmgr->backend->bufmgr_bind_native_display) {
+                       TBM_WRN("skip: tbm_bufmgr(%p) native_display(%p)\n",
+                                       bufmgr, native_display);
+                       _tbm_bufmgr_mutex_unlock();
+                       return 1;
+               }
+
+               ret = bufmgr->backend->bufmgr_bind_native_display(bufmgr, native_display);
+               if (!ret) {
+                       TBM_ERR("error: tbm_bufmgr(%p) native_display(%p)\n",
+                                       bufmgr, native_display);
+                       _tbm_bufmgr_mutex_unlock();
+                       return 0;
+               }
        }
 
        TBM_INFO("tbm_bufmgr(%p) native_display(%p)\n", bufmgr, native_display);