} \
}
-static char *
+char *
_tbm_flag_to_str(int f)
{
static char str[255];
return NULL;
}
-/* LCOV_EXCL_START */
-tbm_bo
-tbm_bo_alloc_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags)
-{
- tbm_bo bo, bo2 = NULL;
-
- _tbm_bufmgr_mutex_lock();
- _tbm_set_last_result(TBM_ERROR_NONE);
-
- TBM_BO_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr), NULL);
- TBM_BO_RETURN_VAL_IF_FAIL(bo_data, NULL);
-
- // return an existed bo if the bo is already created with the same bo_data.
- if (!LIST_IS_EMPTY(&bufmgr->bo_list)) {
- LIST_FOR_EACH_ENTRY(bo2, &bufmgr->bo_list, item_link) {
- if (bo2->bo_data == bo_data) {
- TBM_ERR("find bo(%p) ref(%d) flag(%s) in list\n",
- bo2, bo2->ref_cnt, _tbm_flag_to_str(bo2->flags));
- bo2->ref_cnt++;
- _tbm_bufmgr_mutex_unlock();
- return bo2;
- }
- }
- }
-
- bo = calloc(1, sizeof(struct _tbm_bo));
- if (!bo) {
- /* LCOV_EXCL_START */
- _tbm_set_last_result(TBM_ERROR_OUT_OF_MEMORY);
- _tbm_bufmgr_mutex_unlock();
- return NULL;
- /* LCOV_EXCL_STOP */
- }
-
- _tbm_util_check_bo_cnt(bufmgr);
-
- bo->get_from_hal_surface = 1;
- bo->bo_data = bo_data;
-
- _tbm_bo_init(bufmgr, bo, flags);
-
- TBM_TRACE_BO("bo(%p) refcnt(%d), flag(%s)\n", bo, bo->ref_cnt, _tbm_flag_to_str(bo->flags));
-
- _tbm_bufmgr_mutex_unlock();
-
- return bo;
-}
-
-/* LCOV_EXCL_STOP */
-
tbm_bo
tbm_bo_ref(tbm_bo bo)
{
return NULL;
}
+tbm_bo
+tbm_bufmgr_internal_alloc_bo_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags)
+{
+ tbm_bo bo, bo2 = NULL;
+
+ _tbm_bufmgr_mutex_lock();
+ _tbm_set_last_result(TBM_ERROR_NONE);
+
+ TBM_BUFMGR_RETURN_VAL_IF_FAIL(TBM_BUFMGR_IS_VALID(bufmgr), NULL);
+ TBM_BUFMGR_RETURN_VAL_IF_FAIL(bo_data, NULL);
+
+ _tbm_bufmgr_check_bo_cnt(bufmgr);
+
+ bo = calloc(1, sizeof(struct _tbm_bo));
+ if (!bo) {
+ /* LCOV_EXCL_START */
+ TBM_ERR("memory allocationc failed.");
+ _tbm_set_last_result(TBM_ERROR_OUT_OF_MEMORY);
+ _tbm_bufmgr_mutex_unlock();
+ return NULL;
+ /* LCOV_EXCL_STOP */
+ }
+ bo->bo_data = bo_data;
+ bo->get_from_hal_surface = 1;
+
+ // return an existed bo if the bo is already created with the same bo_data.
+ bo2 = tbm_bufmgr_internal_find_bo(bufmgr, bo);
+ if (bo2) {
+ bo2->ref_cnt++;
+ free(bo);
+ _tbm_bufmgr_mutex_unlock();
+ return bo2;
+ }
+
+ _tbm_bufmgr_initialize_bo(bufmgr, bo, flags);
+
+ TBM_TRACE_BO("bo(%p) refcnt(%d), flag(%s)", bo, bo->ref_cnt, _tbm_flag_to_str(bo->flags));
+
+ _tbm_bufmgr_mutex_unlock();
+
+ return bo;
+}
+
/* LCOV_EXCL_STOP */
void _tbm_set_last_result(tbm_error_e err);
+char *_tbm_flag_to_str(int f);
+
/* functions for mutex */
void _tbm_bufmgr_mutex_lock(void);
void _tbm_bufmgr_mutex_unlock(void);
tbm_bo tbm_bufmgr_internal_find_bo(tbm_bufmgr bufmgr, tbm_bo bo);
tbm_bo tbm_bufmgr_internal_alloc_bo_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, int height, tbm_bo_memory_type flags, tbm_error_e *error);
-tbm_bo tbm_bo_alloc_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags);
+tbm_bo tbm_bufmgr_internal_alloc_bo_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags);
/* tbm_module functions */
tbm_module *tbm_module_load(int fd);
}
for (i = 0; i < num_bos; i++) {
- surf->bos[i] = tbm_bo_alloc_with_bo_data(bufmgr, (tbm_backend_bo_data *)hal_bos[i], flags);
+ surf->bos[i] = tbm_bufmgr_internal_alloc_bo_with_bo_data(bufmgr, (tbm_backend_bo_data *)hal_bos[i], flags);
if (!surf->bos[i]) {
TBM_ERR("fail to alloc bo idx:%d", i);
*error = tbm_get_last_error();
surf->flags = flags;
for (i = 0; i < num_bos; i++) {
- surf->bos[i] = tbm_bo_alloc_with_bo_data(bufmgr, (tbm_backend_bo_data *)hal_bos[i], flags);
+ surf->bos[i] = tbm_bufmgr_internal_alloc_bo_with_bo_data(bufmgr, (tbm_backend_bo_data *)hal_bos[i], flags);
if (!surf->bos[i]) {
TBM_ERR("fail to alloc bo idx:%d", i);
*error = tbm_get_last_error();