X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftbm_bufmgr_backend.c;h=87d3c78bbfc7209d861543723763be5e0576f7eb;hb=84d2f6d1cb3fc8ae8b448ca164da587b5a807327;hp=d6017b62c9a10b1b1b8ef6157398fd3c4e98a94c;hpb=a9a1b447190cb9f9dfb00b941d75a56115fbe111;p=platform%2Fcore%2Fuifw%2Flibtbm.git diff --git a/src/tbm_bufmgr_backend.c b/src/tbm_bufmgr_backend.c old mode 100755 new mode 100644 index d6017b6..87d3c78 --- a/src/tbm_bufmgr_backend.c +++ b/src/tbm_bufmgr_backend.c @@ -5,6 +5,7 @@ libtbm Copyright 2012 Samsung Electronics co., Ltd. All Rights Reserved. Contact: SooChan Lim , Sangjin Lee +Boram Park , Changyeon Lee Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -36,100 +37,92 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include "tbm_bufmgr_int.h" -tbm_bufmgr_backend -tbm_backend_alloc (void) +/* LCOV_EXCL_START */ +tbm_bufmgr_backend tbm_backend_alloc(void) { - tbm_bufmgr_backend bufmgr_backend; + tbm_bufmgr_backend bufmgr_backend; - bufmgr_backend = calloc (1, sizeof(struct _tbm_bufmgr_backend)); - if (!bufmgr_backend) - return NULL; + bufmgr_backend = calloc(1, sizeof(struct _tbm_bufmgr_backend)); + if (!bufmgr_backend) { + TBM_ERR("error: fail to allocate the bufmgr_backend\n"); + return NULL; + } - return bufmgr_backend; + return bufmgr_backend; } -void -tbm_backend_free (tbm_bufmgr_backend backend) +void tbm_backend_free(tbm_bufmgr_backend backend) { - if (!backend) - return; + if (!backend) + return; - free (backend); - backend = NULL; + free(backend); + backend = NULL; } -int -tbm_backend_init (tbm_bufmgr bufmgr, tbm_bufmgr_backend backend) +int tbm_backend_init(tbm_bufmgr bufmgr, tbm_bufmgr_backend backend) { - int flags = 0; - - if (!bufmgr) - { - fprintf (stderr, "[libtbm:%d] " - "error (%s): fail to init tbm backend... bufmgr is null\n", - getpid(), __FUNCTION__); - return 0; - } - - if (!backend) - { - fprintf (stderr, "[libtbm:%d] " - "error (%s): fail to init tbm backend... backend is null\n", - getpid(), __FUNCTION__); - return 0; - } - - flags = backend->flags; - /* check the backend flags */ - if (!(flags&TBM_CACHE_CTRL_BACKEND)) - { - if (!backend->bo_cache_flush) - { - fprintf (stderr, "[libtbm:%d] " - "error (%s): TBM_FLAG_CACHE_CTRL_TBM needs backend->bo_cache_flush\n", - getpid(), __FUNCTION__); - return 0; - } - } - - /* log for tbm flags */ - fprintf (stderr, "[libtbm:%d] ", getpid()); - fprintf (stderr, "cache_crtl:"); - if (flags&TBM_CACHE_CTRL_BACKEND) - fprintf (stderr, "BACKEND "); - else - fprintf (stderr, "TBM "); - fprintf (stderr, "lock_crtl:"); - if (flags&TBM_LOCK_CTRL_BACKEND) - fprintf (stderr, "BACKEND "); - else - fprintf (stderr, "TBM "); - fprintf (stderr, "\n"); - - bufmgr->backend = backend; - - return 1; + if (!bufmgr) { + TBM_ERR("error: fail to init tbm backend... bufmgr is null\n"); + return 0; + } + + if (!backend) { + TBM_ERR("error: fail to init tbm backend... backend is null\n"); + return 0; + } + + bufmgr->backend = backend; + bufmgr->capabilities = TBM_BUFMGR_CAPABILITY_NONE; + + if (bufmgr->backend->bo_import && bufmgr->backend->bo_export) + bufmgr->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_KEY; + + if (bufmgr->backend->bo_import_fd && bufmgr->backend->bo_export_fd) + bufmgr->capabilities |= TBM_BUFMGR_CAPABILITY_SHARE_FD; + + return 1; } -void * -tbm_backend_get_bufmgr_priv (tbm_bo bo) +void *tbm_backend_get_bufmgr_priv(tbm_bo bo) { - tbm_bufmgr_backend backend = bo->bufmgr->backend; + tbm_bufmgr_backend backend = bo->bufmgr->backend; - return backend->priv; + return backend->priv; } -void -tbm_backend_set_bo_priv (tbm_bo bo, void *bo_priv) +void *tbm_backend_get_priv_from_bufmgr(tbm_bufmgr bufmgr) { - bo->priv = bo_priv; + tbm_bufmgr_backend backend = bufmgr->backend; + + return backend->priv; } -void * -tbm_backend_get_bo_priv (tbm_bo bo) +void tbm_backend_set_bo_priv(tbm_bo bo, void *bo_priv) { - return bo->priv; + bo->priv = bo_priv; } +void *tbm_backend_get_bo_priv(tbm_bo bo) +{ + return bo->priv; +} + +int tbm_backend_is_display_server(void) +{ + const char *value; + if (gBufMgr == NULL) { + TBM_ERR("error: no gBufMgr.\n"); + return 0; + } + /* TODO: TBM_DISPLAY_SERVER will be removed */ + value = (const char*)getenv("TBM_DISPLAY_SERVER"); + + if (value || gBufMgr->display_server) + return 1; + + return 0; +} +/* LCOV_EXCL_STOP */