#include <errno.h>
#include <assert.h>
#include <pthread.h>
+#if ENABLE_DLOG
#include <dlog.h>
+#endif
#include <tbm_bufmgr.h>
+#include <tbm_bufmgr_internal.h>
+#include <tbm_debug.h>
#include <tbm_bo.h>
#include <tbm_surface.h>
#include <tbm_surface_internal.h>
#include <tbm_surface_queue.h>
+#include <tbm_surface_queue_internal.h>
#include <tbm_log.h>
-#include <tbm_bufmgr_backend.h>
-#include <tbm_backend.h>
#include <tbm_error.h>
-#include <hal/hal-tbm.h>
+#include "tbm_module.h"
extern tbm_bufmgr gBufMgr;
extern int b_dump_queue;
extern int trace_mask;
+#define TBM_BO_MAGIC 0xBF011234
+
#define C(b, m) (((b) >> (m)) & 0xFF)
#define B(c, s) ((((unsigned int)(c)) & 0xff) << (s))
#define FOURCC(a, b, c, d) (B(d, 24) | B(c, 16) | B(b, 8) | B(a, 0))
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
*/
int ref_cnt; /* ref count of bo */
int flags; /* TBM_BO_FLAGS :bo memory type */
struct list_head user_data_list; /* list of the user_date in bo */
- void *priv; /* bo private (will be DEPRECATED) */
struct list_head item_link; /* link of bo */
tbm_surface_h surface; /* tbm_surface */
int lock_cnt; /* lock count of bo */
unsigned int map_cnt; /* device map count */
- tbm_backend_bo_data *bo_data; /* bo data of the backend module */
- int get_from_hal_surface; /* bo_data has be detroyed by hal backend */
+ tbm_bo_data *bo_data; /* bo data of the module */
+ int get_from_surface_data; /* bo_data has be detroyed by surface_data */
};
/**
struct list_head surf_queue_list; /* list of surface queues belonging to bufmgr */
struct list_head debug_key_list; /* list of debug data key list belonging to bufmgr */
- //TODO: tbm_module *module;
- tbm_module *module; /* tbm module */
-
- //TODO: replace this to data in tbm_module *module
- 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 *module; /* tbm module information */
};
/**
int height;
} damage;
- hal_tbm_surface *hal_surface; // hal_tbm_surface
+ tbm_surface_data *surface_data; /* surface data of the module */
};
typedef struct {
void _tbm_set_last_result(tbm_error_e err);
+char *_tbm_flag_to_str(int f);
+
/* functions for mutex */
void _tbm_bufmgr_mutex_lock(void);
void _tbm_bufmgr_mutex_unlock(void);
-
-tbm_bo tbm_bo_alloc_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int bpp, int height, tbm_bo_memory_type flags, tbm_error_e *error);
-tbm_bo tbm_bo_alloc_with_bo_data(tbm_bufmgr bufmgr, tbm_backend_bo_data *bo_data, int flags);
-
-/* 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_bo_alloc(tbm_module *module, tbm_bo bo, int size, int flags, tbm_error_e *error);
-tbm_backend_bo_data *tbm_module_bufmgr_bo_alloc_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_bo_import_fd(tbm_module *module, tbm_bo bo, tbm_fd fd, tbm_error_e *error);
-tbm_backend_bo_data *tbm_module_bufmgr_bo_import_key(tbm_module *module, tbm_bo bo, tbm_key key, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_find_bo(tbm_bufmgr bufmgr, tbm_bo bo);
+
+tbm_bo tbm_bufmgr_internal_alloc_bo(tbm_bufmgr bufmgr, int size, int flags);
+tbm_bo tbm_bufmgr_internal_alloc_bo_with_format(tbm_bufmgr bufmgr, int format, int bo_idx, int width, int height, int bpp, tbm_bo_memory_type flags, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_alloc_bo_with_bo_data(tbm_bufmgr bufmgr, tbm_bo_data *bo_data, int flags, tbm_error_e *error);
+tbm_bo tbm_bufmgr_internal_import_bo_with_key(tbm_bufmgr bufmgr, tbm_key key);
+tbm_bo tbm_bufmgr_internal_import_bo_with_fd(tbm_bufmgr bufmgr, tbm_fd fd);
+int tbm_bufmgr_internal_support_capabilites(tbm_bufmgr bufmgr, int capabilities);
#endif /* _TBM_BUFMGR_INT_H_ */