From 5562be21a51a019f457db98f867fdd30e832b761 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Fri, 18 Jun 2021 11:16:09 +0900 Subject: [PATCH] tbm_module: make tbm_module.h make tbm_module.h and move structures and symbols form tbm_bufmgr_int.h to tbm_module.h Change-Id: I3064ebb93c049daf36c834418e0b004761382191 --- src/tbm_bufmgr_int.h | 50 +-------------------------- src/tbm_module.h | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 49 deletions(-) create mode 100644 src/tbm_module.h diff --git a/src/tbm_bufmgr_int.h b/src/tbm_bufmgr_int.h index b921fdc..22eae73 100644 --- a/src/tbm_bufmgr_int.h +++ b/src/tbm_bufmgr_int.h @@ -59,6 +59,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include "tbm_module.h" extern tbm_bufmgr gBufMgr; extern int b_dump_queue; @@ -172,31 +173,6 @@ struct list_head { struct list_head *next; }; -typedef enum _tbm_module_type { - TBM_MODULE_TYPE_NONE, - TBM_MODULE_TYPE_HAL_TBM, - TBM_MODULE_TYPE_TBM_BACKEND, - TBM_MODULE_TYPE_BUFMGR_BACKEND, -} tbm_module_type; - -typedef struct _tbm_module { - tbm_module_type type; - - void *module_data; /* backend module */ - tbm_bufmgr_backend backend; /* bufmgr backend (will be DEPRECATED) */ - - tbm_backend_module *backend_module_data; /* backend module data */ - tbm_backend_bufmgr_data *bufmgr_data; /* backend data of the backend module */ - tbm_backend_bufmgr_func *bufmgr_func; /* backend functions for bufmgr */ - tbm_backend_bo_func *bo_func; /* backend functions for bo */ - - int use_hal_tbm; /* use hal-api-tbm */ - int auth_wl_socket_created; /* create wayland socket for authenticated drm_fd */ - int auth_fd; - hal_tbm_backend *hal_backend; /* hal-api-tbm backend */ - hal_tbm_bufmgr *hal_bufmgr; /* hal-api-tbm bufmgr */ -} tbm_module; - /** * @brief tbm_bo : buffer object of Tizen Buffer Manager */ @@ -357,28 +333,4 @@ tbm_bo tbm_bufmgr_internal_alloc_bo_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_ tbm_bo tbm_bufmgr_internal_import_bo_with_key(tbm_bufmgr bufmgr, tbm_key key, tbm_error_e *error); tbm_bo tbm_bufmgr_internal_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd, tbm_error_e *error); -/* tbm_module functions */ -tbm_module *tbm_module_load(int fd); -void tbm_module_unload(tbm_module *module); - -int tbm_module_bufmgr_get_capabilities(tbm_module *module, tbm_error_e *error); -tbm_error_e tbm_module_bufmgr_bind_native_display(tbm_module *module, void *native_display); -tbm_error_e tbm_module_bufmgr_get_supported_formats(tbm_module *module, uint32_t **formats, uint32_t *num); -tbm_error_e tbm_module_bufmgr_get_plane_data(tbm_module *module, int format, int plane_idx, uint32_t w, uint32_t h, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx); -tbm_backend_bo_data *tbm_module_bufmgr_alloc_bo(tbm_module *module, tbm_bo bo, int size, int flags, tbm_error_e *error); -tbm_backend_bo_data *tbm_module_bufmgr_alloc_bo_with_format(tbm_module *module, int format, int bo_idx, int width, int height, int bpp, tbm_bo_memory_type flags, tbm_error_e *error); -tbm_backend_bo_data *tbm_module_bufmgr_import_bo_with_fd(tbm_module *module, tbm_bo bo, tbm_fd fd, tbm_error_e *error); -tbm_backend_bo_data *tbm_module_bufmgr_import_bo_with_key(tbm_module *module, tbm_bo bo, tbm_key key, tbm_error_e *error); - -void tbm_module_bo_free(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int get_from_hal_surface); -int tbm_module_bo_get_size(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); -int tbm_module_bo_get_memory_types(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); -tbm_bo_handle tbm_module_bo_get_handle(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, tbm_error_e *error); -tbm_bo_handle tbm_module_bo_map(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, int opt, tbm_error_e *error); -tbm_error_e tbm_module_bo_unmap(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data); -tbm_error_e tbm_module_bo_lock(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, int opt); -tbm_error_e tbm_module_bo_unlock(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data); -tbm_fd tbm_module_bo_export_fd(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); -tbm_key tbm_module_bo_export_key(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); - #endif /* _TBM_BUFMGR_INT_H_ */ diff --git a/src/tbm_module.h b/src/tbm_module.h new file mode 100644 index 0000000..92ac305 --- /dev/null +++ b/src/tbm_module.h @@ -0,0 +1,95 @@ +/************************************************************************** + +libtbm + +Copyright 2012-2021 Samsung Electronics co., Ltd. All Rights Reserved. + +Contact: SooChan Lim + Changyeon Lee + +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. + +**************************************************************************/ + +#ifndef _TBM_MODULE_H_ +#define _TBM_MODULE_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +typedef enum _tbm_module_type { + TBM_MODULE_TYPE_NONE, + TBM_MODULE_TYPE_HAL_TBM, + TBM_MODULE_TYPE_TBM_BACKEND, + TBM_MODULE_TYPE_BUFMGR_BACKEND, +} tbm_module_type; + +typedef struct _tbm_module { + tbm_module_type type; + + void *module_data; /* backend module */ + tbm_bufmgr_backend backend; /* bufmgr backend (will be DEPRECATED) */ + + tbm_backend_module *backend_module_data; /* backend module data */ + tbm_backend_bufmgr_data *bufmgr_data; /* backend data of the backend module */ + tbm_backend_bufmgr_func *bufmgr_func; /* backend functions for bufmgr */ + tbm_backend_bo_func *bo_func; /* backend functions for bo */ + + int use_hal_tbm; /* use hal-api-tbm */ + int auth_wl_socket_created; /* create wayland socket for authenticated drm_fd */ + int auth_fd; + hal_tbm_backend *hal_backend; /* hal-api-tbm backend */ + hal_tbm_bufmgr *hal_bufmgr; /* hal-api-tbm bufmgr */ +} tbm_module; + +/* tbm_module functions */ +tbm_module *tbm_module_load(int fd); +void tbm_module_unload(tbm_module *module); + +int tbm_module_bufmgr_get_capabilities(tbm_module *module, tbm_error_e *error); +tbm_error_e tbm_module_bufmgr_bind_native_display(tbm_module *module, void *native_display); +tbm_error_e tbm_module_bufmgr_get_supported_formats(tbm_module *module, uint32_t **formats, uint32_t *num); +tbm_error_e tbm_module_bufmgr_get_plane_data(tbm_module *module, int format, int plane_idx, uint32_t w, uint32_t h, uint32_t *size, uint32_t *offset, uint32_t *pitch, int *bo_idx); +tbm_backend_bo_data *tbm_module_bufmgr_alloc_bo(tbm_module *module, tbm_bo bo, int size, int flags, tbm_error_e *error); +tbm_backend_bo_data *tbm_module_bufmgr_alloc_bo_with_format(tbm_module *module, int format, int bo_idx, int width, int height, int bpp, tbm_bo_memory_type flags, tbm_error_e *error); +tbm_backend_bo_data *tbm_module_bufmgr_import_bo_with_fd(tbm_module *module, tbm_bo bo, tbm_fd fd, tbm_error_e *error); +tbm_backend_bo_data *tbm_module_bufmgr_import_bo_with_key(tbm_module *module, tbm_bo bo, tbm_key key, tbm_error_e *error); + +void tbm_module_bo_free(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int get_from_hal_surface); +int tbm_module_bo_get_size(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); +int tbm_module_bo_get_memory_types(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); +tbm_bo_handle tbm_module_bo_get_handle(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, tbm_error_e *error); +tbm_bo_handle tbm_module_bo_map(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, int opt, tbm_error_e *error); +tbm_error_e tbm_module_bo_unmap(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data); +tbm_error_e tbm_module_bo_lock(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, int device, int opt); +tbm_error_e tbm_module_bo_unlock(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data); +tbm_fd tbm_module_bo_export_fd(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); +tbm_key tbm_module_bo_export_key(tbm_module *module, tbm_bo bo, tbm_backend_bo_data *bo_data, tbm_error_e *error); + +#endif // _TBM_MODULE_H_ \ No newline at end of file -- 2.7.4