*/
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);
+
#ifdef __cplusplus
}
#endif