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);
}
*w = 0;
*h = 0;
- if (gBufMgr == NULL || !LIST_IS_EMPTY(&gBufMgr->surf_list))
+ if (gBufMgr == NULL || LIST_IS_EMPTY(&gBufMgr->surf_list))
return count;
LIST_FOR_EACH_ENTRY(surface, &gBufMgr->surf_list, item_link) {
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;
static int
_tbm_bo_is_valid(tbm_bo bo)
{
- tbm_bo old_data;
+ tbm_bo old_data = NULL;
if (bo == NULL || gBufMgr == NULL) {
TBM_LOG_E("error: bo is NULL or tbm_bufmgr was deinited\n");
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;
}
pthread_mutex_lock(&gLock);
+ if (fd >= 0) {
+ TBM_LOG_W("!!!!!WARNING:: The tbm_bufmgr_init DOSE NOT use argument fd ANYMORE.\n");
+ TBM_LOG_W("!!!!!WARNING:: IT WILL BE CHANGED like tbm_bufmgr_init(int fd) --> tbm_bufmgr_init(void).\n");
+ }
+
/* initialize buffer manager */
if (gBufMgr) {
gBufMgr->ref_count++;
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_bo bo = NULL, tmp_bo = NULL;
- int bo_cnt = 0;
- tbm_surface_h surf = NULL, tmp_surf = NULL;
- int surf_cnt = 0;
- int i;
- char app_name[255] = {0,};
- unsigned int pid = 0;
- char title[255] = {0,};
- char data[255] = {0,};
- tbm_surface_debug_data *debug_old_data = NULL, *debug_tmp = NULL;
+ char app_name[255] = {0,}, title[512] = {0,};
+ tbm_surface_debug_data *debug_old_data = NULL;
pthread_mutex_lock(&gLock);
_tbm_util_get_appname_brief(app_name);
TBM_DEBUG("============TBM DEBUG: %s(%d)===========================\n",
app_name, getpid());
- memset(app_name, 0x0, 255 * sizeof(char));
+
snprintf(title, 255, "%s", "no surface refcnt width height bpp size n_b n_p flags format app_name ");
+
if (!LIST_IS_EMPTY(&bufmgr->debug_key_list)) {
- LIST_FOR_EACH_ENTRY_SAFE(debug_old_data, debug_tmp, &bufmgr->debug_key_list, item_link) {
+ LIST_FOR_EACH_ENTRY(debug_old_data, &bufmgr->debug_key_list, item_link) {
strncat(title, " ", 3);
strncat(title, debug_old_data->key, strlen(debug_old_data->key) + 1);
}
TBM_DEBUG("[tbm_surface information]\n");
TBM_DEBUG("%s\n", title);
+
/* show the tbm_surface information in surf_list */
if (!LIST_IS_EMPTY(&bufmgr->surf_list)) {
- char *value = NULL;
+ tbm_surface_h surf = NULL;
+ int surf_cnt = 0;
+
+ LIST_FOR_EACH_ENTRY(surf, &bufmgr->surf_list, item_link) {
+ char data[512] = {0,};
+ unsigned int pid;
+ int i;
- LIST_FOR_EACH_ENTRY_SAFE(surf, tmp_surf, &bufmgr->surf_list, item_link) {
pid = _tbm_surface_internal_get_debug_pid(surf);
if (!pid) {
/* if pid is null, set the self_pid */
pid = getpid();
}
+ memset(app_name, 0x0, 255 * sizeof(char));
_tbm_util_get_appname_from_pid(pid, app_name);
_tbm_util_get_appname_brief(app_name);
- snprintf(data, 255, "%-2d %-9p %-4d %-5d %-6d %-3d %-6d %-2d %-2d %-3d %-8s %-15s",
+ snprintf(data, 255, "%-2d %-9p %-4d %-5u %-6u %-3u %-6u %-2d %-2d %-3d %-8s %-15s",
++surf_cnt,
surf,
surf->refcnt,
app_name);
if (!LIST_IS_EMPTY(&bufmgr->debug_key_list)) {
- LIST_FOR_EACH_ENTRY_SAFE(debug_old_data, debug_tmp, &bufmgr->debug_key_list, item_link) {
+ LIST_FOR_EACH_ENTRY(debug_old_data, &bufmgr->debug_key_list, item_link) {
+ char *value;
+
strncat(data, " ", 3);
value = _tbm_surface_internal_get_debug_data(surf, debug_old_data->key);
surf->bos[i]->ref_cnt,
bufmgr->backend->bo_size(surf->bos[i]) / 1024);
}
-
- memset(app_name, 0x0, 255 * sizeof(char));
}
- } else {
+ } else
TBM_DEBUG("no tbm_surfaces.\n");
- }
TBM_DEBUG("\n");
TBM_DEBUG("[tbm_bo information]\n");
/* show the tbm_bo information in bo_list */
if (!LIST_IS_EMPTY(&bufmgr->bo_list)) {
- LIST_FOR_EACH_ENTRY_SAFE(bo, tmp_bo, &bufmgr->bo_list, item_link) {
- TBM_DEBUG("%-4d%-11p %-4d %-6d %-5d %-4d %-3d %-11p\n",
+ int bo_cnt = 0;
+ 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",
++bo_cnt,
bo,
bo->ref_cnt,
bo->flags,
bo->surface);
}
- } else {
+ } else
TBM_DEBUG("no tbm_bos.\n");
- }
TBM_DEBUG("\n");
TBM_DEBUG("===============================================================\n");
int
tbm_bufmgr_debug_queue_dump(char *path, int count, int onoff)
{
- int w = 0, h = 0;
+ pthread_mutex_lock(&gLock);
- TBM_RETURN_VAL_IF_FAIL(path != NULL, 0);
- TBM_LOG_D("path=%s count=%d onoff=%d\n", path, count, onoff);
+ if (onoff == 0) {
+ TBM_LOG_D("count=%d onoff=%d\n", count, onoff);
+ b_dump_queue = 0;
+ tbm_surface_internal_dump_end();
+ } else {
+ int w, h;
- pthread_mutex_lock(&gLock);
+ if (path == NULL) {
+ TBM_LOG_E("path is null");
+ pthread_mutex_unlock(&gLock);
+ return 0;
+ }
+ TBM_LOG_D("path=%s count=%d onoff=%d\n", path, count, onoff);
- if (onoff == 1) {
if (_tbm_util_get_max_surface_size(&w, &h) == 0) {
- TBM_LOG_I("No tbm_surface.\n");
+ TBM_LOG_E("Fail to get tbm_surface size.\n");
pthread_mutex_unlock(&gLock);
return 0;
}
tbm_surface_internal_dump_start(path, w, h, count);
b_dump_queue = 1;
- } else if (onoff == 0) {
- tbm_surface_internal_dump_end();
- b_dump_queue = 0;
- } else {
- pthread_mutex_unlock(&gLock);
- return 0;
}
pthread_mutex_unlock(&gLock);
int
tbm_bufmgr_debug_dump_all(char *path)
{
- int w = 0, h = 0, count = 0;
- tbm_surface_h surface = NULL, tmp = NULL;
+ int w, h, count = 0;
+ tbm_surface_h surface = NULL;
TBM_RETURN_VAL_IF_FAIL(path != NULL, 0);
TBM_LOG_D("path=%s\n", path);
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;
}
tbm_surface_internal_dump_start(path, w, h, count);
- LIST_FOR_EACH_ENTRY_SAFE(surface, tmp, &gBufMgr->surf_list, item_link) {
+ LIST_FOR_EACH_ENTRY(surface, &gBufMgr->surf_list, item_link)
tbm_surface_internal_dump_buffer(surface, "dump_all");
- }
tbm_surface_internal_dump_end();
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;