- int flags = 0;
-
- if (!bufmgr)
- {
- TBM_LOG ("[libtbm:%d] "
- "error (%s): fail to init tbm backend... bufmgr is null\n",
- getpid(), __FUNCTION__);
- return 0;
- }
-
- if (!backend)
- {
- TBM_LOG ("[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)
- {
- TBM_LOG ("[libtbm:%d] "
- "error (%s): TBM_FLAG_CACHE_CTRL_TBM needs backend->bo_cache_flush\n",
- getpid(), __FUNCTION__);
- return 0;
- }
- }
-
- 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;