Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
CTCaer
GitHub Repository: CTCaer/hekate
Path: blob/master/bdk/libs/lvgl/lv_misc/lv_gc.h
1476 views
1
/**
2
* @file lv_gc.h
3
*
4
*/
5
6
#ifndef LV_GC_H
7
#define LV_GC_H
8
9
#ifdef __cplusplus
10
extern "C" {
11
#endif
12
13
/*********************
14
* INCLUDES
15
*********************/
16
17
#ifdef LV_CONF_INCLUDE_SIMPLE
18
#include "lv_conf.h"
19
#else
20
#include "../../lv_conf.h"
21
#endif
22
23
#include <stdint.h>
24
#include "lv_mem.h"
25
#include "lv_ll.h"
26
27
/*********************
28
* DEFINES
29
*********************/
30
31
#define LV_GC_ROOTS(prefix) \
32
prefix lv_ll_t _lv_task_ll; /*Linked list to store the lv_tasks*/ \
33
prefix lv_ll_t _lv_scr_ll; /*Linked list of screens*/ \
34
prefix lv_ll_t _lv_drv_ll;\
35
prefix lv_ll_t _lv_file_ll;\
36
prefix lv_ll_t _lv_anim_ll;\
37
prefix void * _lv_def_scr;\
38
prefix void * _lv_act_scr;\
39
prefix void * _lv_top_layer;\
40
prefix void * _lv_sys_layer;\
41
prefix void * _lv_task_act;\
42
prefix void * _lv_indev_list;\
43
prefix void * _lv_disp_list;\
44
45
#define LV_NO_PREFIX
46
#define LV_ROOTS LV_GC_ROOTS(LV_NO_PREFIX)
47
48
#if LV_ENABLE_GC == 1
49
# if LV_MEM_CUSTOM != 1
50
# error "GC requires CUSTOM_MEM"
51
# endif /* LV_MEM_CUSTOM */
52
#else /* LV_ENABLE_GC */
53
# define LV_GC_ROOT(x) x
54
LV_GC_ROOTS(extern)
55
#endif /* LV_ENABLE_GC */
56
57
58
/**********************
59
* TYPEDEFS
60
**********************/
61
62
/**********************
63
* GLOBAL PROTOTYPES
64
**********************/
65
66
/**********************
67
* MACROS
68
**********************/
69
70
71
#ifdef __cplusplus
72
} /* extern "C" */
73
#endif
74
75
#endif /*LV_GC_H*/
76
77