Zephyr API Documentation
3.5.0
A Scalable Open Source RTOS
3.5.0
Toggle main menu visibility
Main Page
Related Pages
Modules
Data Structures
Data Structures
Data Structure Index
Data Fields
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
Files
File List
Globals
All
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
$
a
b
c
d
f
g
h
i
k
l
m
n
o
p
r
s
t
x
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Macros
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
Loading...
Searching...
No Matches
iterable_sections.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2020, Intel Corporation
3
* Copyright (C) 2023, Nordic Semiconductor ASA
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef INCLUDE_ZEPHYR_LINKER_ITERABLE_SECTIONS_H_
8
#define INCLUDE_ZEPHYR_LINKER_ITERABLE_SECTIONS_H_
9
15
#define Z_LINK_ITERABLE(struct_type) \
16
_CONCAT(_##struct_type, _list_start) = .; \
17
KEEP(*(SORT_BY_NAME(._##struct_type.static.*))); \
18
_CONCAT(_##struct_type, _list_end) = .
19
20
#define Z_LINK_ITERABLE_NUMERIC(struct_type) \
21
_CONCAT(_##struct_type, _list_start) = .; \
22
KEEP(*(SORT(._##struct_type.static.*_?_*))); \
23
KEEP(*(SORT(._##struct_type.static.*_??_*))); \
24
_CONCAT(_##struct_type, _list_end) = .
25
26
#define Z_LINK_ITERABLE_ALIGNED(struct_type, align) \
27
. = ALIGN(align); \
28
Z_LINK_ITERABLE(struct_type);
29
30
#define Z_LINK_ITERABLE_GC_ALLOWED(struct_type) \
31
_CONCAT(_##struct_type, _list_start) = .; \
32
*(SORT_BY_NAME(._##struct_type.static.*)); \
33
_CONCAT(_##struct_type, _list_end) = .
34
49
#define ITERABLE_SECTION_ROM(struct_type, subalign) \
50
SECTION_PROLOGUE(struct_type##_area,,SUBALIGN(subalign)) \
51
{ \
52
Z_LINK_ITERABLE(struct_type); \
53
} GROUP_ROM_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
54
64
#define ITERABLE_SECTION_ROM_NUMERIC(struct_type, subalign) \
65
SECTION_PROLOGUE(struct_type##_area, EMPTY, SUBALIGN(subalign)) \
66
{ \
67
Z_LINK_ITERABLE_NUMERIC(struct_type); \
68
} GROUP_ROM_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
69
82
#define ITERABLE_SECTION_ROM_GC_ALLOWED(struct_type, subalign) \
83
SECTION_PROLOGUE(struct_type##_area,,SUBALIGN(subalign)) \
84
{ \
85
Z_LINK_ITERABLE_GC_ALLOWED(struct_type); \
86
} GROUP_LINK_IN(ROMABLE_REGION)
87
102
#define ITERABLE_SECTION_RAM(struct_type, subalign) \
103
SECTION_DATA_PROLOGUE(struct_type##_area,,SUBALIGN(subalign)) \
104
{ \
105
Z_LINK_ITERABLE(struct_type); \
106
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
107
117
#define ITERABLE_SECTION_RAM_NUMERIC(struct_type, subalign) \
118
SECTION_PROLOGUE(struct_type##_area, EMPTY, SUBALIGN(subalign)) \
119
{ \
120
Z_LINK_ITERABLE_NUMERIC(struct_type); \
121
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
122
135
#define ITERABLE_SECTION_RAM_GC_ALLOWED(struct_type, subalign) \
136
SECTION_DATA_PROLOGUE(struct_type##_area,,SUBALIGN(subalign)) \
137
{ \
138
Z_LINK_ITERABLE_GC_ALLOWED(struct_type); \
139
} GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
140
/* end of struct_section_apis */
144
145
#endif
/* INCLUDE_ZEPHYR_LINKER_ITERABLE_SECTIONS_H_ */
zephyr
linker
iterable_sections.h
Generated on Fri Oct 20 2023 10:27:12 for Zephyr API Documentation by
1.9.6