int tbm_surface_internal_capture_shm_buffer(void *ptr, int w, int h, int stride,
const char *path, const char *name, const char *type);
+/**
+ * @brief Set damage to surface
+ * @param[in] surface : a tbm surface
+ * @param[in] x : a x coordinate of damage
+ * @param[in] y : a y coordinate of damage
+ * @param[in] with : a width of damage rectangle
+ * @param[in] height : a height of damage rectangle
+ * @return 1 if success, otherwise 0.
+ */
+int tbm_surface_internal_set_damage(tbm_surface_h surface, int x, int y, int width, int height);
+
+/**
+ * @brief Get damage of surface
+ * @param[in] surface : a tbm surface
+ * @param[out] x : a x coordinate of damage
+ * @param[out] y : a y coordinate of damage
+ * @param[out] with : a width of damage rectangle
+ * @param[out] height : a height of damage rectangle
+ * @return 1 if success, otherwise 0.
+ */
+int tbm_surface_internal_get_damage(tbm_surface_h surface, int *x, int *y, int *width, int *height);
+
+/**
+ * @brief Definition for the Tizen buffer surface destroy callback function
+ */
+typedef void (*tbm_surface_internal_destroy_handler)(tbm_surface_h surface, void *user_data);
+
+/**
+ * @brief Set destroy callback function of surface
+ * @param[in] surface : a tbm surface
+ * @param[in] func : a destory callback function
+ * @param[in] user_data : a user data
+ * @return 1 if success, otherwise 0.
+ */
+int tbm_surface_internal_add_destroy_handler(tbm_surface_h surface, tbm_surface_internal_destroy_handler func, void *user_data);
+
+/**
+ * @brief Unset destroy callback function of surface
+ * @param[in] surface : a tbm surface
+ * @param[in] func : a destory callback function
+ * @param[in] user_data : a user data
+ */
+void tbm_surface_internal_remove_destroy_handler(tbm_surface_h surface, tbm_surface_internal_destroy_handler func, void *user_data);
+
+/**
+ * @brief Export a tbm_surface_buffer_data of surface
+ * @param[in] surface : a tbm surface
+ * @param[out] error : an error type
+ */
+tbm_surface_buffer_data *tbm_surface_internal_export(tbm_surface_h surface, tbm_error_e *error);
+
+/**
+ * @brief Import a surface object
+ * @param[in] surface_info : an information fo surface
+ * @param[in] buffer_data : a buffer data of surface
+ * @param[out] error : an error type
+ */
+tbm_surface_h tbm_surface_internal_import(tbm_surface_info_s *surface_info, tbm_surface_buffer_data *buffer_data, tbm_error_e *error);
+
#ifdef __cplusplus
}
#endif