-/* LCOV_EXCL_STOP */
-
-tbm_user_data
-*user_data_lookup(struct list_head *user_data_list, unsigned long key)
-{
- tbm_user_data *user_data = NULL;
- tbm_user_data *old_data = NULL, *tmp = NULL;
-
- if (!LIST_IS_EMPTY(user_data_list)) {
- LIST_FOR_EACH_ENTRY_SAFE(old_data, tmp, user_data_list, item_link) {
- if (old_data->key == key) {
- user_data = old_data;
- return user_data;
- }
- }
- }
-
- return user_data;
-}
-
-tbm_user_data
-*user_data_create(unsigned long key, tbm_data_free data_free_func)
-{
- tbm_user_data *user_data = NULL;
-
- user_data = calloc(1, sizeof(tbm_user_data));
- if (!user_data)
- return NULL;
-
- user_data->key = key;
- user_data->free_func = data_free_func;
- user_data->data = (void *)0;
-
- return user_data;
-}
-
-void
-user_data_delete(tbm_user_data *user_data)
-{
- if (user_data->data && user_data->free_func)
- user_data->free_func(user_data->data);
-
- LIST_DEL(&user_data->item_link);
-
- free(user_data);
-}
-
-static int
-_bo_lock(tbm_bo bo, int device, int opt)
-{
- tbm_bufmgr bufmgr = bo->bufmgr;
- int ret = 0;
-
- if (bufmgr->backend->bo_lock)
- ret = bufmgr->backend->bo_lock(bo, device, opt);
- else
- ret = 1;
-
- return ret;
-}
-
-static void
-_bo_unlock(tbm_bo bo)
-{
- tbm_bufmgr bufmgr = bo->bufmgr;
-
- if (bufmgr->backend->bo_unlock)
- bufmgr->backend->bo_unlock(bo);
-}
-
-static int
-_tbm_bo_lock(tbm_bo bo, int device, int opt)
-{
- tbm_bufmgr bufmgr = NULL;
- int old;
- int ret = 0;
-
- if (!bo)
- return 0;
-
- bufmgr = bo->bufmgr;
-
- /* do not try to lock the bo */
- if (bufmgr->lock_type == LOCK_TRY_NEVER)
- return 1;
-
- if (bo->lock_cnt < 0) {
- TBM_LOG_E("error bo:%p LOCK_CNT=%d\n",
- bo, bo->lock_cnt);
- }
-
- old = bo->lock_cnt;
- if (bufmgr->lock_type == LOCK_TRY_ONCE) {
- if (bo->lock_cnt == 0) {
- pthread_mutex_unlock(&bufmgr->lock);
- ret = _bo_lock(bo, device, opt);
- pthread_mutex_lock(&bufmgr->lock);
- if (ret)
- bo->lock_cnt++;
- } else
- ret = 1;
- } else if (bufmgr->lock_type == LOCK_TRY_ALWAYS) {
- pthread_mutex_unlock(&bufmgr->lock);
- ret = _bo_lock(bo, device, opt);
- pthread_mutex_lock(&bufmgr->lock);
- if (ret)
- bo->lock_cnt++;
- } else {
- TBM_LOG_E("error bo:%p lock_type is wrong.\n",
- bo);
- }
-
- DBG_LOCK(">> LOCK bo:%p(%d->%d)\n",
- bo, old, bo->lock_cnt);
-
- return ret;
-}
-
-static void
-_tbm_bo_unlock(tbm_bo bo)
-{
- tbm_bufmgr bufmgr = NULL;
-
- int old;
-
- if (!bo)
- return;
-
- bufmgr = bo->bufmgr;
-
- /* do not try to unlock the bo */
- if (bufmgr->lock_type == LOCK_TRY_NEVER)
- return;
-
- old = bo->lock_cnt;
- if (bufmgr->lock_type == LOCK_TRY_ONCE) {
- if (bo->lock_cnt > 0) {
- bo->lock_cnt--;
- if (bo->lock_cnt == 0)
- _bo_unlock(bo);
- }
- } else if (bufmgr->lock_type == LOCK_TRY_ALWAYS) {
- if (bo->lock_cnt > 0) {
- bo->lock_cnt--;
- _bo_unlock(bo);
- }
- } else {
- TBM_LOG_E("error bo:%p lock_type is wrong.\n",
- bo);
- }
-
- if (bo->lock_cnt < 0)
- bo->lock_cnt = 0;
-
- DBG_LOCK(">> UNLOCK bo:%p(%d->%d)\n",
- bo, old, bo->lock_cnt);
-}
-
-static int
-_tbm_bo_is_valid(tbm_bo bo)
-{
- tbm_bo old_data = NULL, tmp = NULL;
-
- if (bo == NULL)
- return 0;
-
- if (!LIST_IS_EMPTY(&gBufMgr->bo_list)) {
- LIST_FOR_EACH_ENTRY_SAFE(old_data, tmp, &gBufMgr->bo_list, item_link) {
- if (old_data == bo)
- return 1;
- }
-
- }
- return 0;
-}
-
-static void
-_tbm_bo_ref(tbm_bo bo)
-{
- bo->ref_cnt++;
-}