return true;
if (pthread_mutex_init(&tbm_bufmgr_lock, NULL)) {
- TBM_LOG_E("fail: tbm_bufmgr mutex init\n");
+ TBM_LOG_E("fail: Cannot pthread_mutex_init for tbm_bufmgr_lock.\n");
return false;
}
static void
_tbm_bufmgr_mutex_lock(void)
{
- if (!_tbm_bufmgr_mutex_init())
+ if (!_tbm_bufmgr_mutex_init()) {
+ TBM_LOG_E("fail: _tbm_bufmgr_mutex_init()\n");
return;
+ }
pthread_mutex_lock(&tbm_bufmgr_lock);
}
fp = fopen(fn_cmdline, "r");
if (fp == 0) {
- fprintf(stderr, "cannot file open %s\n", fn_cmdline);
+ TBM_LOG_E("cannot file open %s\n", fn_cmdline);
return;
}
if (!fgets(cmdline, 255, fp)) {
- fprintf(stderr, "fail to get appname for pid(%ld)\n", pid);
+ TBM_LOG_E("fail to get appname for pid(%ld)\n", pid);
fclose(fp);
return;
}
tbm_user_data *user_data;
user_data = calloc(1, sizeof(tbm_user_data));
- if (!user_data)
+ if (!user_data) {
+ TBM_LOG_E("fail to allocate an user_date\n");
return NULL;
+ }
user_data->key = key;
user_data->free_func = data_free_func;
return 0;
}
- if (LIST_IS_EMPTY(&gBufMgr->bo_list))
+ if (LIST_IS_EMPTY(&gBufMgr->bo_list)) {
+ TBM_LOG_E("error: gBufMgr->bo_list is EMPTY.\n");
return 0;
+ }
LIST_FOR_EACH_ENTRY(old_data, &gBufMgr->bo_list, item_link) {
if (old_data == bo)
return 1;
}
+ TBM_LOG_E("error: No valid bo(%p).\n", bo);
+
return 0;
}
bo = calloc(1, sizeof(struct _tbm_bo));
if (!bo) {
- TBM_TRACE("error: fail to create of tbm_bo size(%d) flag(%s)\n",
+ TBM_LOG_E("error: fail to create of tbm_bo size(%d) flag(%s)\n",
size, _tbm_flag_to_str(flags));
_tbm_set_last_result(TBM_BO_ERROR_HEAP_ALLOC_FAILED);
_tbm_bufmgr_mutex_unlock();
bo_priv = bufmgr->backend->bo_alloc(bo, size, flags);
if (!bo_priv) {
- TBM_TRACE("error: fail to create of tbm_bo size(%d) flag(%s)\n",
+ TBM_LOG_E("error: fail to create of tbm_bo size(%d) flag(%s)\n",
size, _tbm_flag_to_str(flags));
_tbm_set_last_result(TBM_BO_ERROR_BO_ALLOC_FAILED);
free(bo);
bo = calloc(1, sizeof(struct _tbm_bo));
if (!bo) {
- TBM_TRACE("error: fail to import of tbm_bo by key(%d)\n", key);
+ TBM_LOG_E("error: fail to import of tbm_bo by key(%d)\n", key);
_tbm_bufmgr_mutex_unlock();
return NULL;
}
bo_priv = bufmgr->backend->bo_import(bo, key);
if (!bo_priv) {
- TBM_TRACE("error: fail to import of tbm_bo by key(%d)\n", key);
+ TBM_LOG_E("error: fail to import of tbm_bo by key(%d)\n", key);
_tbm_set_last_result(TBM_BO_ERROR_IMPORT_FAILED);
free(bo);
_tbm_bufmgr_mutex_unlock();
bo = calloc(1, sizeof(struct _tbm_bo));
if (!bo) {
- TBM_TRACE("error: fail to import tbm_bo by tbm_fd(%d)\n", fd);
+ TBM_LOG_E("error: fail to import tbm_bo by tbm_fd(%d)\n", fd);
_tbm_bufmgr_mutex_unlock();
return NULL;
}
bo_priv = bufmgr->backend->bo_import_fd(bo, fd);
if (!bo_priv) {
- TBM_TRACE("error: fail to import tbm_bo by tbm_fd(%d)\n", fd);
+ TBM_LOG_E("error: fail to import tbm_bo by tbm_fd(%d)\n", fd);
_tbm_set_last_result(TBM_BO_ERROR_IMPORT_FD_FAILED);
free(bo);
_tbm_bufmgr_mutex_unlock();
ret = bufmgr->backend->bo_export(bo);
if (!ret) {
_tbm_set_last_result(TBM_BO_ERROR_EXPORT_FAILED);
- TBM_TRACE("error: bo(%p) tbm_key(%d)\n", bo, ret);
+ TBM_LOG_E("error: bo(%p) tbm_key(%d)\n", bo, ret);
_tbm_bufmgr_mutex_unlock();
return ret;
}
ret = bufmgr->backend->bo_export_fd(bo);
if (ret < 0) {
_tbm_set_last_result(TBM_BO_ERROR_EXPORT_FD_FAILED);
- TBM_TRACE("error: bo(%p) tbm_fd(%d)\n", bo, ret);
+ TBM_LOG_E("error: bo(%p) tbm_fd(%d)\n", bo, ret);
_tbm_bufmgr_mutex_unlock();
return ret;
}
bo_handle = bufmgr->backend->bo_get_handle(bo, device);
if (bo_handle.ptr == NULL) {
_tbm_set_last_result(TBM_BO_ERROR_GET_HANDLE_FAILED);
- TBM_TRACE("error: bo(%p) bo_handle(%p)\n", bo, bo_handle.ptr);
+ TBM_LOG_E("error: bo(%p) bo_handle(%p)\n", bo, bo_handle.ptr);
_tbm_bufmgr_mutex_unlock();
return (tbm_bo_handle) NULL;
}
if (!_tbm_bo_lock(bo, device, opt)) {
_tbm_set_last_result(TBM_BO_ERROR_LOCK_FAILED);
- TBM_TRACE("error: fail to lock bo:%p)\n", bo);
+ TBM_LOG_E("error: fail to lock bo:%p)\n", bo);
_tbm_bufmgr_mutex_unlock();
return (tbm_bo_handle) NULL;
}
bo_handle = bufmgr->backend->bo_map(bo, device, opt);
if (bo_handle.ptr == NULL) {
_tbm_set_last_result(TBM_BO_ERROR_MAP_FAILED);
- TBM_TRACE("error: fail to map bo:%p\n", bo);
+ TBM_LOG_E("error: fail to map bo:%p\n", bo);
_tbm_bo_unlock(bo);
_tbm_bufmgr_mutex_unlock();
return (tbm_bo_handle) NULL;
ret = bufmgr->backend->bo_unmap(bo);
if (!ret) {
- TBM_TRACE("error: bo(%p) map_cnt(%d)\n", bo, bo->map_cnt);
+ TBM_LOG_E("error: bo(%p) map_cnt(%d)\n", bo, bo->map_cnt);
_tbm_set_last_result(TBM_BO_ERROR_UNMAP_FAILED);
_tbm_bufmgr_mutex_unlock();
return ret;
if (bufmgr->backend->bo_size(bo1) != bufmgr->backend->bo_size(bo2)) {
_tbm_set_last_result(TBM_BO_ERROR_SWAP_FAILED);
- TBM_TRACE("error: bo1(%p) bo2(%p)\n", bo1, bo2);
+ TBM_LOG_E("error: bo1(%p) bo2(%p)\n", bo1, bo2);
_tbm_bufmgr_mutex_unlock();
return 0;
}
TBM_BUFMGR_RETURN_VAL_IF_FAIL(_tbm_bo_is_valid(bo), 0);
if (bufmgr->lock_type == LOCK_TRY_NEVER) {
- TBM_TRACE("bo(%p) lock_cnt(%d)\n", bo, bo->lock_cnt);
+ TBM_LOG_E("bo(%p) lock_cnt(%d)\n", bo, bo->lock_cnt);
_tbm_bufmgr_mutex_unlock();
return 0;
}
data = user_data_create(key, data_free_func);
if (!data) {
- TBM_TRACE("error: bo(%p) key(%lu)\n", bo, key);
+ TBM_LOG_E("error: bo(%p) key(%lu)\n", bo, key);
_tbm_bufmgr_mutex_unlock();
return 0;
}
}
void
-tbm_bufmgr_debug_show(tbm_bufmgr bufmgr)
+tbm_bufmgr_debug_tbm_info_get(tbm_bufmgr bufmgr, char *str, int *len)
{
- char app_name[255] = {0,}, title[255] = {0,};
+ char app_name[255] = {0,}, title[512] = {0,};
tbm_surface_debug_data *debug_old_data = NULL;
pthread_mutex_lock(&gLock);
return;
}
- TBM_DEBUG("\n");
+ TBM_SNPRINTF(str, len, "\n");
_tbm_util_get_appname_from_pid(getpid(), app_name);
_tbm_util_get_appname_brief(app_name);
- TBM_DEBUG("============TBM DEBUG: %s(%d)===========================\n",
+ TBM_SNPRINTF(str, len, "============TBM DEBUG: %s(%d)===========================\n",
app_name, getpid());
snprintf(title, 255, "%s", "no surface refcnt width height bpp size n_b n_p flags format app_name ");
}
}
- TBM_DEBUG("[tbm_surface information]\n");
- TBM_DEBUG("%s\n", title);
+ TBM_SNPRINTF(str, len, "[tbm_surface information]\n");
+ TBM_SNPRINTF(str, len, "%s\n", title);
/* show the tbm_surface information in surf_list */
if (!LIST_IS_EMPTY(&bufmgr->surf_list)) {
int surf_cnt = 0;
LIST_FOR_EACH_ENTRY(surf, &bufmgr->surf_list, item_link) {
- char data[255] = {0,};
+ char data[512] = {0,};
unsigned int pid;
int i;
strncat(data, "none", 5);
}
}
- TBM_DEBUG("%s\n", data);
+ TBM_SNPRINTF(str, len, "%s\n", data);
for (i = 0; i < surf->num_bos; i++) {
- TBM_DEBUG(" bo:%-12p %-26d%-10d\n",
+ TBM_SNPRINTF(str, len, " bo:%-12p %-26d%-10d\n",
surf->bos[i],
surf->bos[i]->ref_cnt,
bufmgr->backend->bo_size(surf->bos[i]) / 1024);
}
}
} else
- TBM_DEBUG("no tbm_surfaces.\n");
- TBM_DEBUG("\n");
+ TBM_SNPRINTF(str, len, " no tbm_surfaces.\n");
+ TBM_SNPRINTF(str, len, "\n");
- TBM_DEBUG("[tbm_bo information]\n");
- TBM_DEBUG("no bo refcnt size lock_cnt map_cnt flags surface\n");
+ TBM_SNPRINTF(str, len, "[tbm_bo information]\n");
+ TBM_SNPRINTF(str, len, "no bo refcnt size lock_cnt map_cnt flags surface\n");
/* show the tbm_bo information in bo_list */
if (!LIST_IS_EMPTY(&bufmgr->bo_list)) {
tbm_bo bo = NULL;
LIST_FOR_EACH_ENTRY(bo, &bufmgr->bo_list, item_link) {
- TBM_DEBUG("%-4d%-11p %-4d %-6d %-5d %-4u %-3d %-11p\n",
+ TBM_SNPRINTF(str, len, "%-4d%-11p %-4d %-6d %-5d %-4u %-3d %-11p\n",
++bo_cnt,
bo,
bo->ref_cnt,
bo->surface);
}
} else
- TBM_DEBUG("no tbm_bos.\n");
- TBM_DEBUG("\n");
+ TBM_SNPRINTF(str, len, "no tbm_bos.\n");
+ TBM_SNPRINTF(str, len, "\n");
- TBM_DEBUG("===============================================================\n");
+ TBM_SNPRINTF(str, len, "===============================================================\n");
pthread_mutex_unlock(&gLock);
}
void
+tbm_bufmgr_debug_show(tbm_bufmgr bufmgr)
+{
+ char str[1024*4];
+ int len = sizeof(str);
+ tbm_bufmgr_debug_tbm_info_get(bufmgr, str, &len);
+ TBM_DEBUG(" %s", str);
+}
+
+void
tbm_bufmgr_debug_trace(tbm_bufmgr bufmgr, int onoff)
{
_tbm_bufmgr_mutex_lock();
TBM_LOG_D("path=%s count=%d onoff=%d\n", path, count, onoff);
if (_tbm_util_get_max_surface_size(&w, &h) == 0) {
- TBM_LOG_I("Fail to get tbm_surface size.\n");
+ TBM_LOG_E("Fail to get tbm_surface size.\n");
pthread_mutex_unlock(&gLock);
return 0;
}
count = _tbm_util_get_max_surface_size(&w, &h);
if (count == 0) {
- TBM_LOG_I("No tbm_surface.\n");
+ TBM_LOG_E("No tbm_surface.\n");
pthread_mutex_unlock(&gLock);
return 1;
}
ret = bufmgr->backend->bufmgr_bind_native_display(bufmgr, NativeDisplay);
if (!ret) {
- TBM_TRACE("error: tbm_bufmgr(%p) NativeDisplay(%p)\n",
+ TBM_LOG_E("error: tbm_bufmgr(%p) NativeDisplay(%p)\n",
bufmgr, NativeDisplay);
_tbm_bufmgr_mutex_unlock();
return 0;