- 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;