mirror of
https://github.com/lvgl/lvgl.git
synced 2026-05-10 21:28:59 +08:00
352420cd54
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com> Co-authored-by: Neo Xu <neo.xu1990@gmail.com>
115 lines
3.4 KiB
C
115 lines
3.4 KiB
C
/**
|
|
* @file lv_cache_entry.h
|
|
*
|
|
*/
|
|
|
|
#ifndef LV_CACHE_ENTRY_H
|
|
#define LV_CACHE_ENTRY_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include "../../osal/lv_os.h"
|
|
#include "../lv_types.h"
|
|
#include "lv_cache_private.h"
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
|
|
/**********************
|
|
* GLOBAL PROTOTYPES
|
|
**********************/
|
|
|
|
/**
|
|
* Get the size of a cache entry.
|
|
* @param node_size The size of the node in the cache.
|
|
* @return The size of the cache entry.
|
|
*/
|
|
uint32_t lv_cache_entry_get_size(const uint32_t node_size);
|
|
|
|
/**
|
|
* Get the reference count of a cache entry.
|
|
* @param entry The cache entry to get the reference count of.
|
|
* @return The reference count of the cache entry.
|
|
*/
|
|
int32_t lv_cache_entry_get_ref(lv_cache_entry_t * entry);
|
|
|
|
/**
|
|
* Get the node size of a cache entry. Which is the same size with @lv_cache_entry_get_size's node_size parameter.
|
|
* @param entry The cache entry to get the node size of.
|
|
* @return The node size of the cache entry.
|
|
*/
|
|
uint32_t lv_cache_entry_get_node_size(lv_cache_entry_t * entry);
|
|
|
|
/**
|
|
* Check if a cache entry is invalid.
|
|
* @param entry The cache entry to check.
|
|
* @return True: the cache entry is invalid. False: the cache entry is valid.
|
|
*/
|
|
bool lv_cache_entry_is_invalid(lv_cache_entry_t * entry);
|
|
|
|
/**
|
|
* Get the data of a cache entry.
|
|
* @param entry The cache entry to get the data of.
|
|
* @return The pointer to the data of the cache entry.
|
|
*/
|
|
void * lv_cache_entry_get_data(lv_cache_entry_t * entry);
|
|
|
|
/**
|
|
* Get the cache instance of a cache entry.
|
|
* @param entry The cache entry to get the cache instance of.
|
|
* @return The pointer to the cache instance of the cache entry.
|
|
*/
|
|
const lv_cache_t * lv_cache_entry_get_cache(const lv_cache_entry_t * entry);
|
|
|
|
/**
|
|
* Get the cache entry of a data. The data should be allocated by the cache instance.
|
|
* @param data The data to get the cache entry of.
|
|
* @param node_size The size of the node in the cache.
|
|
* @return The pointer to the cache entry of the data.
|
|
*/
|
|
lv_cache_entry_t * lv_cache_entry_get_entry(void * data, const uint32_t node_size);
|
|
|
|
/**
|
|
* Allocate a cache entry.
|
|
* @param node_size The size of the node in the cache.
|
|
* @param cache The cache instance to allocate the cache entry from.
|
|
* @return The pointer to the allocated cache entry.
|
|
*/
|
|
lv_cache_entry_t * lv_cache_entry_alloc(const uint32_t node_size, const lv_cache_t * cache);
|
|
|
|
/**
|
|
* Initialize a cache entry.
|
|
* @param entry The cache entry to initialize.
|
|
* @param cache The cache instance to allocate the cache entry from.
|
|
* @param node_size The size of the node in the cache.
|
|
*/
|
|
void lv_cache_entry_init(lv_cache_entry_t * entry, const lv_cache_t * cache, const uint32_t node_size);
|
|
|
|
/**
|
|
* Deallocate a cache entry. And the data of the cache entry will be freed.
|
|
* @param entry The cache entry to deallocate.
|
|
*/
|
|
void lv_cache_entry_delete(lv_cache_entry_t * entry);
|
|
/*************************
|
|
* GLOBAL VARIABLES
|
|
*************************/
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
#ifdef __cplusplus
|
|
} /*extern "C"*/
|
|
#endif
|
|
|
|
#endif /*LV_CACHE_ENTRY_H*/
|