+++ /dev/null
-/**************************************************************************
-
-libtbm
-
-Copyright 2012 Samsung Electronics co., Ltd. All Rights Reserved.
-
-Contact: SooChan Lim <sc1.lim@samsung.com>, Sangjin Lee <lsj119@samsung.com>
-Boram Park <boram1288.park@samsung.com>, Changyeon Lee <cyeon.lee@samsung.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * This file is referenced by the xf86Module.h in xorg server.
- */
-
-#ifndef _TBM_BUFMGR_BACKEND_H_
-#define _TBM_BUFMGR_BACKEND_H_
-
-#include <tbm_bufmgr.h>
-#include <pthread.h>
-
-/**
- * \file tbm_bufmgr_backend.h
- * \brief backend header for Tizen Buffer Manager
- * This header is for the implementation of the TBM backend module.
- */
-
-#define ABI_MINOR_MASK 0x0000FFFF
-#define ABI_MAJOR_MASK 0xFFFF0000
-#define GET_ABI_MINOR(v) ((v) & ABI_MINOR_MASK)
-#define GET_ABI_MAJOR(v) (((v) & ABI_MAJOR_MASK) >> 16)
-
-/*
- * ABI versions. Each version has a major and minor revision. Modules
- * using lower minor revisions must work with servers of a higher minor
- * revision. There is no compatibility between different major revisions.
- * Whenever the ABI_ANSIC_VERSION is changed, the others must also be
- * changed. The minor revision mask is 0x0000FFFF and the major revision
- * mask is 0xFFFF0000.
- */
-#define SET_ABI_VERSION(maj, min) \
- ((((maj) << 16) & ABI_MAJOR_MASK) | ((min) & ABI_MINOR_MASK))
-
-#define TBM_ABI_VERSION SET_ABI_VERSION(1, 1) /**< current abi vertion */
-
-typedef struct _tbm_bufmgr_backend *tbm_bufmgr_backend;
-
-/**
- * @brief TBM backend functions
- * the set of function pointers for the backend module of TBM.
- */
-struct _tbm_bufmgr_backend {
- int flags;
-
- void *priv; /**< bufmgr private */
-
- /**
- * @brief deinitialize the bufmgr private.
- * @param[in] priv : the private of the bufmgr
- */
- void (*bufmgr_deinit)(void *priv);
-
- /**
- * @brief get(bind) the native display
- * @param[in] bufmgr : the buffer object
- * @param[in] native_display : the native display
- * @return 1 if this function succeeds, otherwise 0.
- */
- int (*bufmgr_bind_native_display)(tbm_bufmgr bufmgr, void *native_display);
-
- /**
- * @brief allocate the buffer object
- * @param[in] bo : the buffer object
- * @param[in] size : the size of buffer object
- * @param[in] flags : the flags of memory type
- * @return pointer of the bo private.
- */
- void *(*bo_alloc)(tbm_bo bo, int size, int flags);
-
- /**
- * @brief free the buffer object.
- * @param[in] bo : the buffer object
- */
- void (*bo_free)(tbm_bo bo);
-
- /**
- * @brief get the size of a bo.
- * @param[in] bo : the buffer object
- * @return size if this function succeeds, otherwise 0.
- */
- int (*bo_size)(tbm_bo bo);
-
- /**
- * @brief get the tbm flags of memory type
- * @param[in] bo : the buffer object
- * @see #TBM_BO_FLAGS
- * @return tbm flags of memory type is this function succeeds, otherwise 0.
- */
- int (*bo_get_flags)(tbm_bo bo);
-
- /**
- * @brief get the tbm_bo_handle according to the device type.
- * @param[in] bo : the buffer object
- * @param[in] device : the device type to get a handle
- * @return the handle of the buffer object
- */
- tbm_bo_handle(*bo_get_handle)(tbm_bo bo, int device);
-
- /**
- * @brief map the buffer object according to the device type and the option.
- * @param[in] bo : the buffer object
- * @param[in] device : the device type to get a handle
- * @param[in] opt : the option to access the buffer object
- * @return the handle of the buffer object
- */
- tbm_bo_handle(*bo_map)(tbm_bo bo, int device, int opt);
-
- /**
- * @brief unmap the buffer object.
- * @param[in] bo : the buffer object
- * @return 1 if this function succeeds, otherwise 0.
- */
- int (*bo_unmap)(tbm_bo bo);
-
- /**
- * @brief lock the buffer object with a device and an opt.
- * @param[in] bo : the buffer object
- * @param[in] device : the device type to get a handle
- * @param[in] opt : the option to access the buffer object
- * @return 1 if this function succeeds, otherwise 0.
- * @remark This function pointer could be null. (default: use the tizen global lock)
- */
- int (*bo_lock)(tbm_bo bo, int device, int opt);
-
- /**
- * @brief unlock the buffer object.
- * @param[in] bo : the buffer object
- * @return 1 if this function succeeds, otherwise 0.
- * @remark This function pointer could be null. (default: use the tizen global lock)
- */
- int (*bo_unlock)(tbm_bo bo);
-
- /**
- * @brief export the buffer object
- * @remarks tbm_fd must be free by user.
- * @remarks If the backend doesn't support a buffer sharing by tbm fd,
- fucntion pointer must be set to NULL.
- * @param[in] bo : the buffer object
- * @return tbm_fd associated with the buffer object
- */
- tbm_fd (*bo_export_fd)(tbm_bo bo);
-
- /**
- * @brief import the buffer object associated with the prime fd.
- * @remarks tbm_fd must be free by user.
- * @remarks If the backend doesn't support a buffer sharing by tbm fd,
- fucntion pointer must be set to NULL.
- * @param[in] bo : the buffer object
- * @param[in] fd : the prime fd associated with the buffer object
- * @return pointer of the bo private.
- */
- void *(*bo_import_fd)(tbm_bo bo, tbm_fd fd);
-
- /**
- * @brief export the buffer object
- * @remarks If the backend doesn't support a buffer sharing by tbm key,
- fucntion pointer must be set to NULL.
- * @param[in] bo : the buffer object
- * @return key associated with the buffer object
- */
- unsigned int (*bo_export)(tbm_bo bo);
-
- /**
- * @brief import the buffer object associated with the key.
- * @remarks If the backend doesn't support a buffer sharing by tbm key,
- fucntion pointer must be set to NULL.
- * @param[in] bo : the buffer object
- * @param[in] key : the key associated with the buffer object
- * @return pointer of the bo private.
- */
- void *(*bo_import)(tbm_bo bo, unsigned int key);
-
- /**
- * @brief query the formats list and the num to be supported by backend.
- * @param[out] **formats : format array list. this array has to be allocated by backend funtion
- * @param[out] *num : the number of the formats to be supported by backend
- * @return 1 if this function succeeds, otherwise 0.
- */
- int (*surface_supported_format)(uint32_t **formats, uint32_t *num);
-
- /**
- * @brief get the plane data of the surface.
- * @param[in] width : the width of the surface
- * @param[in] height : the height of the surface
- * @param[in] format : the format of the surface
- * @param[in] plane_idx : the format of the surface
- * @param[out] size : the size of the plane
- * @param[out] offset : the offset of the plane
- * @param[out] pitch : the pitch of the plane
- * @param[out] bo_idx : the bo index of the plane
- * @return 1 if this function succeeds, otherwise 0.
- */
- int (*surface_get_plane_data)(int width, int height,
- tbm_format format, int plane_idx, uint32_t *size, uint32_t *offset,
- uint32_t *pitch, int *bo_idx);
-
- /**
- * @brief allocate the buffer object for tbm surface
- * @param[in] bo : the buffer object
- * @param[in] width : the width of surface
- * @param[in] height : the height of surface
- * @param[in] format : the format of surface
- * @param[in] flags : the flags of memory type
- * @param[in] bo_idx : the index of bo in surface
- * @return pointer of the bo private.
- */
- void * (*surface_bo_alloc)(tbm_bo bo, int width, int height, int format, int flags, int bo_idx);
-
- /* Padding for future extension */
- void (*reserved1)(void);
- void (*reserved2)(void);
- void (*reserved3)(void);
- void (*reserved4)(void);
- void (*reserved5)(void);
- void (*reserved6)(void);
-};
-
-/**
- * @brief tbm module information
- * data type for the module information
- */
-typedef struct {
- const char *modname; /**< name of module, e.g. "foo" */
- const char *vendor; /**< vendor specific string */
- unsigned long abiversion; /**< ABI version */
-} TBMModuleVersionInfo;
-
-typedef int (*ModuleInitProc) (tbm_bufmgr, int);
-
-#define MODULEINITPPROTO(func) int func(tbm_bufmgr, int) /**< prototype for init symbol of bakcend module */
-
-/**
- * @brief tbm module data
- * data type for the entry point of the backend module
- */
-typedef struct {
- TBMModuleVersionInfo *vers; /**< tbm module informtaion */
- ModuleInitProc init; /**< init function of a backend module */
-} TBMModuleData;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-tbm_bufmgr_backend tbm_backend_alloc(void);
-void tbm_backend_free(tbm_bufmgr_backend backend);
-int tbm_backend_init(tbm_bufmgr bufmgr, tbm_bufmgr_backend backend);
-
-void *tbm_backend_get_bufmgr_priv(tbm_bo bo);
-void *tbm_backend_get_priv_from_bufmgr(tbm_bufmgr bufmgr);
-void *tbm_backend_get_bo_priv(tbm_bo bo);
-int tbm_backend_is_display_server(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* _TBM_BUFMGR_BACKEND_H_ */
#include <xf86drm.h>
#include "tbm_bufmgr_int.h"
-#include "tbm_bufmgr_backend.h"
#include "tbm_drm_helper.h"
#define PREFIX_LIB "libtbm_"
return 0;
}
-static int
-_check_version(TBMModuleVersionInfo *data)
-{
- int backend_module_major, backend_module_minor;
- int tbm_backend_major, tbm_backend_minor;
-
- backend_module_major = GET_ABI_MAJOR(data->abiversion);
- backend_module_minor = GET_ABI_MINOR(data->abiversion);
-
- TBM_DBG("TBM module %s: vendor=\"%s\" ABI=%d,%d",
- data->modname ? data->modname : "UNKNOWN!",
- data->vendor ? data->vendor : "UNKNOWN!", backend_module_major, backend_module_minor);
-
- tbm_backend_major = GET_ABI_MAJOR(TBM_ABI_VERSION);
- tbm_backend_minor = GET_ABI_MINOR(TBM_ABI_VERSION);
-
- TBM_DBG("TBM ABI version %d.%d",
- tbm_backend_major, tbm_backend_minor);
-
- if (backend_module_major != tbm_backend_major) {
- TBM_ERR("TBM module ABI major ver(%d) doesn't match the TBM's ver(%d)",
- backend_module_major, tbm_backend_major);
- return 0;
- } else if (backend_module_minor > tbm_backend_minor) {
- TBM_ERR("TBM module ABI minor ver(%d) is newer than the TBM's ver(%d)",
- backend_module_minor, tbm_backend_minor);
- return 0;
- }
-
- return 1;
-}
-
static int
_tbm_backend_check_bufmgr_func(tbm_backend_bufmgr_func *bufmgr_func)
{
goto err;
}
- tbm_backend_major = GET_ABI_MAJOR(TBM_BACKEND_ABI_LATEST_VERSION);
- tbm_backend_minor = GET_ABI_MINOR(TBM_BACKEND_ABI_LATEST_VERSION);
+ tbm_backend_major = TBM_BACKEND_GET_ABI_MAJOR(TBM_BACKEND_ABI_LATEST_VERSION);
+ tbm_backend_minor = TBM_BACKEND_GET_ABI_MINOR(TBM_BACKEND_ABI_LATEST_VERSION);
TBM_INFO("TBM Backend ABI version %d.%d", tbm_backend_major, tbm_backend_minor);
- backend_module_major = GET_ABI_MAJOR(backend_module_data->abi_version);
- backend_module_minor = GET_ABI_MINOR(backend_module_data->abi_version);
+ backend_module_major = TBM_BACKEND_GET_ABI_MAJOR(backend_module_data->abi_version);
+ backend_module_minor = TBM_BACKEND_GET_ABI_MINOR(backend_module_data->abi_version);
TBM_INFO("TBM module %s: vendor=\"%s\" Backend ABI version=%d.%d",
backend_module_data->name ? backend_module_data->name : "UNKNOWN!",
return 0;
}
-
-static int
-_tbm_backend_load_bufmgr_module(tbm_module *module, int fd, const char *file)
-{
- char path[PATH_MAX] = {0, };
- TBMModuleVersionInfo *vers;
- TBMModuleData *initdata;
- ModuleInitProc init;
- void *module_data;
-
- snprintf(path, sizeof(path), BUFMGR_MODULE_DIR "/%s", file);
-
- module_data = dlopen(path, RTLD_LAZY);
- if (!module_data) {
- TBM_ERR("failed to load module: %s(%s)", dlerror(), file);
- return 0;
- }
-
- initdata = dlsym(module_data, "tbmModuleData");
- if (!initdata) {
- TBM_ERR("Error: module does not have data object.");
- goto err;
- }
-
- vers = initdata->vers;
- if (!vers) {
- TBM_ERR("Error: module does not supply version information.");
- goto err;
- }
-
- init = initdata->init;
- if (!init) {
- TBM_ERR("Error: module does not supply init symbol.");
- goto err;
- }
-
- if (!_check_version(vers)) {
- TBM_ERR("Fail to check version.");
- goto err;
- }
-
- if (!init((tbm_bufmgr)module, fd)) {
- TBM_ERR("Fail to init module(%s)", file);
- goto err;
- }
-
- if (!module->backend || !module->backend->priv) {
- TBM_ERR("Error: module(%s) wrong operation. Check backend or backend's priv.", file);
- goto err;
- }
-
- module->module_data = module_data;
-
- TBM_DBG("Success to load module(%s)", file);
-
- return 1;
-
-err:
- dlclose(module_data);
- return 0;
-}
/* LCOV_EXCL_STOP */
tbm_module *
goto done;
}
- /* try to load the old(deprecated) backend mdoule */
- ret = _tbm_backend_load_bufmgr_module(module, fd, DEFAULT_LIB);
- if (ret) {
- module->type = TBM_MODULE_TYPE_BUFMGR_BACKEND;
- return module;
- }
-
/* load backend_module from configured path */
n = scandir(BUFMGR_MODULE_DIR, &namelist, 0, alphasort);
if (n < 0) {
ret = _tbm_backend_load_module(module, namelist[n]->d_name);
if (ret)
module->type = TBM_MODULE_TYPE_TBM_BACKEND;
- else {
- ret = _tbm_backend_load_bufmgr_module(module, fd, namelist[n]->d_name);
- module->type = TBM_MODULE_TYPE_BUFMGR_BACKEND;
- }
}
}
module->bufmgr_data = NULL;
module->backend_module_data = NULL;
- dlclose(module->module_data);
- break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- module->backend->bufmgr_deinit(module->backend->priv);
- module->backend->priv = NULL;
- tbm_backend_free(module->backend);
- module->backend = NULL;
-
dlclose(module->module_data);
break;
default:
capabilities = module->bufmgr_func->bufmgr_get_capabilities(module->bufmgr_data, error);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- TBM_ERR("Do not support at tbm_bufmgr_backend.");
-
- *error = TBM_ERROR_NOT_SUPPORTED;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
*error = TBM_ERROR_INVALID_OPERATION;
{
tbm_error_e error = TBM_ERROR_NONE;
tbm_backend_bufmgr_func *bufmgr_func = NULL;
- tbm_bufmgr_backend backend = NULL;
int ret = 0;
TBM_RETURN_VAL_IF_FAIL(module, TBM_ERROR_INVALID_PARAMETER);
TBM_RETURN_VAL_IF_FAIL(bufmgr_func->bufmgr_bind_native_display, TBM_ERROR_NOT_SUPPORTED);
error = bufmgr_func->bufmgr_bind_native_display(module->bufmgr_data, (tbm_native_display *)native_display);
- break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_IF_FAIL(backend, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_IF_FAIL(backend->bufmgr_bind_native_display, TBM_ERROR_NOT_SUPPORTED);
-
- ret = backend->bufmgr_bind_native_display((tbm_bufmgr)module, native_display);
- if (!ret)
- error = TBM_ERROR_INVALID_OPERATION;
-
break;
default:
TBM_ERR("Wrong module type:%d", module->type);
{
tbm_error_e error = TBM_ERROR_NONE;
tbm_backend_bufmgr_func *bufmgr_func = NULL;
- tbm_bufmgr_backend backend = NULL;
- int ret = 0;
TBM_RETURN_VAL_IF_FAIL(module, TBM_ERROR_INVALID_PARAMETER);
TBM_RETURN_VAL_IF_FAIL(bufmgr_func->bufmgr_get_supported_formats, TBM_ERROR_NOT_SUPPORTED);
error = bufmgr_func->bufmgr_get_supported_formats(module->bufmgr_data, formats, num);
- break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_IF_FAIL(backend, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_IF_FAIL(backend->surface_supported_format, TBM_ERROR_NOT_SUPPORTED);
-
- ret = backend->surface_supported_format(formats, num);
- if (!ret)
- error = TBM_ERROR_INVALID_OPERATION;
-
break;
default:
TBM_ERR("Wrong module type:%d", module->type);
{
tbm_error_e error = TBM_ERROR_NONE;
tbm_backend_bufmgr_func *bufmgr_func = NULL;
- tbm_bufmgr_backend backend = NULL;
- int ret = 0;
TBM_RETURN_VAL_IF_FAIL(module, TBM_ERROR_INVALID_PARAMETER);
error = bufmgr_func->bufmgr_get_plane_data(module->bufmgr_data, format, plane_idx, w, h, size, offset, pitch, bo_idx);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_IF_FAIL(backend, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_IF_FAIL(backend->surface_get_plane_data, TBM_ERROR_NOT_SUPPORTED);
-
- ret = backend->surface_get_plane_data(w, h, format, plane_idx, size, offset, pitch, bo_idx);
- if (!ret)
- error = TBM_ERROR_INVALID_OPERATION;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
error = TBM_ERROR_INVALID_OPERATION;
{
tbm_bo_data *bo_data = NULL;
tbm_backend_bufmgr_func *bufmgr_func = NULL;
- tbm_bufmgr_backend backend = NULL;
TBM_RETURN_VAL_SET_ERR_IF_FAIL(module, NULL, *error, TBM_ERROR_INVALID_PARAMETER);
bo_data->backend_bo_data = bufmgr_func->bufmgr_alloc_bo(module->bufmgr_data, (unsigned int)size, flags, error);
TBM_GOTO_VAL_IF_FAIL(bo_data->backend_bo_data, failed);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
-
- backend = module->backend;
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(backend, failed, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(backend->bo_alloc, failed, *error, TBM_ERROR_NOT_SUPPORTED);
-
- bo_data->priv = (void *)backend->bo_alloc(bo, size, flags);
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(bo_data->priv, failed, *error, TBM_ERROR_INVALID_OPERATION);
-
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
*error = TBM_ERROR_INVALID_OPERATION;
if (!bo_data->backend_bo_data)
goto failed;
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- TBM_ERR("error: not supported tbm_module_alloc_bo_data_with_format.");
-
- *error = TBM_ERROR_NOT_SUPPORTED;
- goto failed;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
*error = TBM_ERROR_INVALID_OPERATION;
{
tbm_bo_data *bo_data = NULL;
tbm_backend_bufmgr_func *bufmgr_func = NULL;
- tbm_bufmgr_backend backend = NULL;
TBM_RETURN_VAL_SET_ERR_IF_FAIL(module, NULL, *error, TBM_ERROR_INVALID_PARAMETER);
bo_data->backend_bo_data = bufmgr_func->bufmgr_import_fd(module->bufmgr_data, fd, error);
TBM_GOTO_VAL_IF_FAIL(bo_data->backend_bo_data, failed);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(backend, failed, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(backend->bo_import_fd, failed, *error, TBM_ERROR_NOT_SUPPORTED);
-
- bo_data->priv = (void *)backend->bo_import_fd(bo, fd);
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(bo_data->priv, failed, *error, TBM_ERROR_INVALID_OPERATION);
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
*error = TBM_ERROR_INVALID_OPERATION;
{
tbm_bo_data *bo_data = NULL;
tbm_backend_bufmgr_func *bufmgr_func = NULL;
- tbm_bufmgr_backend backend = NULL;
TBM_RETURN_VAL_SET_ERR_IF_FAIL(module, NULL, *error, TBM_ERROR_INVALID_PARAMETER);
bo_data->backend_bo_data = bufmgr_func->bufmgr_import_key(module->bufmgr_data, key, error);
TBM_GOTO_VAL_IF_FAIL(bo_data->backend_bo_data, failed);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(backend, failed, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(backend->bo_import, failed, *error, TBM_ERROR_NOT_SUPPORTED);
-
- bo_data->priv = (void *)backend->bo_import(bo, key);
- TBM_GOTO_VAL_SET_ERR_IF_FAIL(bo_data->priv, failed, *error, TBM_ERROR_INVALID_OPERATION);
-
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
*error = TBM_ERROR_INVALID_OPERATION;
case TBM_MODULE_TYPE_TBM_BACKEND:
return (bo_data1->backend_bo_data == bo_data2->backend_bo_data);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- return (bo_data1->priv == bo_data2->priv);
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
break;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
TBM_RETURN_IF_FAIL(bo_data);
TBM_RETURN_IF_FAIL(bo_data->module);
bo_func->bo_free(bo_data->backend_bo_data);
bo_data->backend_bo_data = NULL;
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_IF_FAIL(backend);
- TBM_RETURN_IF_FAIL(backend->bo_free);
-
- backend->bo_free(bo_data->priv);
- bo_data->priv = NULL;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
break;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
int size = 0;
TBM_RETURN_VAL_SET_ERR_IF_FAIL(bo_data, 0, *error, TBM_ERROR_INVALID_PARAMETER);
size = bo_func->bo_get_size(bo_data->backend_bo_data, error);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend, 0, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend->bo_size, 0, *error, TBM_ERROR_NOT_SUPPORTED);
-
- size = backend->bo_size(bo_data->priv);
- if (size == 0)
- *error = TBM_ERROR_INVALID_OPERATION;
- else
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
*error = TBM_ERROR_INVALID_OPERATION;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
int memory_types = TBM_BO_DEFAULT;
TBM_RETURN_VAL_SET_ERR_IF_FAIL(bo_data, 0, *error, TBM_ERROR_INVALID_PARAMETER);
memory_types = bo_func->bo_get_memory_types(bo_data->backend_bo_data, error);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend, 0, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend->bo_get_flags, 0, *error, TBM_ERROR_NOT_SUPPORTED);
-
- memory_types = backend->bo_get_flags(bo_data->priv);
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
*error = TBM_ERROR_INVALID_OPERATION;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
tbm_bo_handle bo_handle = (tbm_bo_handle)NULL;
hal_tbm_bo_handle hbo_handle;
bo_handle = bo_func->bo_get_handle(bo_data->backend_bo_data, device, error);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend, (tbm_bo_handle)NULL, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend->bo_get_handle, (tbm_bo_handle)NULL, *error, TBM_ERROR_NOT_SUPPORTED);
-
- bo_handle = backend->bo_get_handle(bo_data->priv, device);
- if (!bo_handle.ptr)
- *error = TBM_ERROR_INVALID_OPERATION;
- else
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
bo_handle.ptr = NULL;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
tbm_bo_handle bo_handle = (tbm_bo_handle)NULL;
hal_tbm_bo_handle hbo_handle = (hal_tbm_bo_handle)NULL;
bo_handle = bo_func->bo_map(bo_data->backend_bo_data, device, opt, error);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend, (tbm_bo_handle)NULL, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend->bo_map, (tbm_bo_handle)NULL, *error, TBM_ERROR_NOT_SUPPORTED);
-
- bo_handle = backend->bo_map(bo_data->priv, device, opt);
- if (!bo_handle.ptr)
- *error = TBM_ERROR_INVALID_OPERATION;
- else
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
bo_handle.ptr = NULL;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
tbm_error_e error;
- int ret = 0;
TBM_RETURN_VAL_IF_FAIL(bo_data, TBM_ERROR_INVALID_PARAMETER);
TBM_RETURN_VAL_IF_FAIL(bo_data->module, TBM_ERROR_INVALID_PARAMETER);
error = bo_func->bo_unmap(bo_data->backend_bo_data);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_IF_FAIL(backend, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_IF_FAIL(backend->bo_unmap, TBM_ERROR_NOT_SUPPORTED);
-
- ret = backend->bo_unmap(bo_data->priv);
- if (!ret)
- error = TBM_ERROR_INVALID_OPERATION;
- else
- error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
error = TBM_ERROR_INVALID_OPERATION;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
tbm_error_e error;
- int ret = 0;
TBM_RETURN_VAL_IF_FAIL(bo_data, TBM_ERROR_INVALID_PARAMETER);
TBM_RETURN_VAL_IF_FAIL(bo_data->module, TBM_ERROR_INVALID_PARAMETER);
error = bo_func->bo_lock(bo_data->backend_bo_data, device, opt);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_IF_FAIL(backend, TBM_ERROR_INVALID_OPERATION);
- if (!backend->bo_unmap)
- return TBM_ERROR_NOT_SUPPORTED;
-
- ret = backend->bo_lock(bo_data->priv, device, opt);
- if (!ret)
- error = TBM_ERROR_INVALID_OPERATION;
- else
- error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
error = TBM_ERROR_INVALID_OPERATION;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
tbm_error_e error;
TBM_RETURN_VAL_IF_FAIL(bo_data, TBM_ERROR_INVALID_PARAMETER);
error = bo_func->bo_unlock(bo_data->backend_bo_data);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_IF_FAIL(backend, TBM_ERROR_INVALID_OPERATION);
- if (!backend->bo_unlock)
- return TBM_ERROR_NOT_SUPPORTED;
-
- backend->bo_unlock(bo_data->priv);
- error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
error = TBM_ERROR_INVALID_OPERATION;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
tbm_fd fd;
TBM_RETURN_VAL_SET_ERR_IF_FAIL(bo_data, -1, *error, TBM_ERROR_INVALID_PARAMETER);
fd = bo_func->bo_export_fd(bo_data->backend_bo_data, error);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend, -1, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend->bo_export_fd, -1, *error, TBM_ERROR_NOT_SUPPORTED);
-
- fd = backend->bo_export_fd(bo_data->priv);
- if (fd < 0)
- *error = TBM_ERROR_INVALID_OPERATION;
- else
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
fd = -1;
{
tbm_module *module = NULL;
tbm_backend_bo_func *bo_func = NULL;
- tbm_bufmgr_backend backend = NULL;
tbm_key ret;
TBM_RETURN_VAL_SET_ERR_IF_FAIL(bo_data, 0, *error, TBM_ERROR_INVALID_PARAMETER);
ret = bo_func->bo_export_key(bo_data->backend_bo_data, error);
break;
- case TBM_MODULE_TYPE_BUFMGR_BACKEND:
- TBM_WRN("!!WARNING: This backend interface will be DEPRECATED after Tizen 6.5.");
- backend = module->backend;
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend, 0, *error, TBM_ERROR_INVALID_OPERATION);
- TBM_RETURN_VAL_SET_ERR_IF_FAIL(backend->bo_export, 0, *error, TBM_ERROR_NOT_SUPPORTED);
-
- ret = backend->bo_export(bo_data->priv);
- if (!ret)
- *error = TBM_ERROR_INVALID_OPERATION;
- else
- *error = TBM_ERROR_NONE;
- break;
default:
TBM_ERR("Wrong module type:%d", module->type);
ret = -1;