tbm_module *tbm_module_load(tbm_bufmgr bufmgr, int fd);
void tbm_module_unload(tbm_module *module);
-#endif /* _TBM_BUFMGR_INT_H_ */
+int tbm_module_bufmgr_get_capabilities(tbm_module *module);
+
+#endif /* _TBM_BUFMGR_INT_H_ */
free(module);
}
+int
+tbm_module_bufmgr_get_capabilities(tbm_module *module)
+{
+ tbm_error_e error = TBM_ERROR_NOT_SUPPORTED;
+ int capabilities = 0;
+
+ switch (module->type) {
+ case TBM_MODULE_TYPE_HAL_TBM:
+ 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);
+ break;
+ case TBM_MODULE_TYPE_BUFMGR_BACKEND:
+ TBM_ERR("Do not support at tbm_bufmgr_backend.");
+ break;
+ default:
+ TBM_ERR("Wrong module type:%d", module->type);
+ break;
+ }
+
+ if (error != TBM_ERROR_NONE) {
+ TBM_ERR("fail to get capabilities of bufmgr");
+ return 0;
+ }
+
+ return capabilities;
+}