static tbm_bufmgr
_tbm_bufmgr_init(int fd, int server)
{
+ tbm_error_e error = TBM_ERROR_NONE;
+
#ifdef TBM_BUFMGR_INIT_TIME
struct timeval start_tv, end_tv;
#endif
_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) {
+ gBufMgr->capabilities = tbm_module_bufmgr_get_capabilities(gBufMgr->module, &error);
+ if (gBufMgr->capabilities == TBM_BUFMGR_CAPABILITY_NONE) {
TBM_ERR("The capabilities of the backend module is TBM_BUFMGR_CAPABILITY_NONE.");
TBM_ERR("TBM_BUFMGR_CAPABILITY_SHARE_FD is the essential capability.");
tbm_module_unload(gBufMgr->module);
- _tbm_set_last_result(TBM_ERROR_INVALID_OPERATION);
+ _tbm_set_last_result(error);
free(gBufMgr);
gBufMgr = NULL;
pthread_mutex_unlock(&gLock);
return NULL;
}
- if (!(gBufMgr->capabilities & HAL_TBM_BUFMGR_CAPABILITY_SHARE_FD)) {
+ if (!(gBufMgr->capabilities & TBM_BUFMGR_CAPABILITY_SHARE_FD)) {
TBM_ERR("The capabilities of the backend module had no TBM_BUFMGR_CAPABILITY_SHARE_FD.");
TBM_ERR("The tbm backend has to get TBM_BUFMGR_CAPABILITY_SHARE_FD. ");
tbm_module_unload(gBufMgr->module);
tbm_module *tbm_module_load(int fd);
void tbm_module_unload(tbm_module *module);
-int tbm_module_bufmgr_get_capabilities(tbm_module *module);
+int tbm_module_bufmgr_get_capabilities(tbm_module *module, tbm_error_e *error);
tbm_backend_bo_data *tbm_module_bufmgr_bo_alloc(tbm_module *module, tbm_bo bo, int size, int flags, tbm_error_e *error);
#endif /* _TBM_BUFMGR_INT_H_ */
}
int
-tbm_module_bufmgr_get_capabilities(tbm_module *module)
+tbm_module_bufmgr_get_capabilities(tbm_module *module, tbm_error_e *error)
{
- tbm_error_e error = TBM_ERROR_NOT_SUPPORTED;
int capabilities = 0;
+ TBM_RETURN_VAL_SET_ERR_IF_FAIL(module, TBM_BUFMGR_CAPABILITY_NONE, *error, TBM_ERROR_INVALID_PARAMETER);
+
switch (module->type) {
case TBM_MODULE_TYPE_HAL_TBM:
- capabilities = hal_tbm_bufmgr_get_capabilities(module->hal_bufmgr, (hal_tbm_error *)&error);
+ capabilities = hal_tbm_bufmgr_get_capabilities(module->hal_bufmgr, (hal_tbm_error *)error);
break;
case TBM_MODULE_TYPE_TBM_BACKEND:
- capabilities = module->bufmgr_func->bufmgr_get_capabilities(module->bufmgr_data, &error);
+ capabilities = module->bufmgr_func->bufmgr_get_capabilities(module->bufmgr_data, error);
break;
case TBM_MODULE_TYPE_BUFMGR_BACKEND:
+ TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 7.0.");
TBM_ERR("Do not support at tbm_bufmgr_backend.");
+ *error = TBM_ERROR_NOT_SUPPORTED;
break;
default:
TBM_ERR("Wrong module type:%d", module->type);
+ *error = TBM_ERROR_INVALID_OPERATION;
break;
}
- if (error != TBM_ERROR_NONE) {
- TBM_ERR("fail to get capabilities of tbm_module_bufmgr");
- return 0;
- }
-
return capabilities;
}