Zephyr Project API
4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
log_instance.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Nordic Semiconductor ASA
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
12
13
#ifndef ZEPHYR_INCLUDE_LOGGING_LOG_INSTANCE_H_
14
#define ZEPHYR_INCLUDE_LOGGING_LOG_INSTANCE_H_
15
16
#include <
zephyr/types.h
>
17
#include <
zephyr/sys/iterable_sections.h
>
18
19
#ifdef __cplusplus
20
extern
"C"
{
21
#endif
22
24
26
struct
log_source_const_data {
27
const
char
*name;
28
uint8_t
level;
29
};
30
32
struct
log_source_dynamic_data {
33
uint32_t
filters;
34
#if defined(CONFIG_64BIT)
35
/* Workaround: Ensure that structure size is a multiple of 8 bytes. */
36
uint32_t
dummy_64;
37
#endif
38
};
39
41
46
51
58
#define Z_LOG_ITEM_CONST_DATA(_name) UTIL_CAT(log_const_, _name)
59
71
#define Z_LOG_CONST_ITEM_REGISTER(_name, _str_name, _level) \
72
const STRUCT_SECTION_ITERABLE_ALTERNATE(log_const, \
73
log_source_const_data, \
74
Z_LOG_ITEM_CONST_DATA(_name)) = \
75
{ \
76
.name = _str_name, \
77
.level = (_level), \
78
}
79
88
#define LOG_OBJECT_PTR_INIT(_name, _object) \
89
IF_ENABLED(CONFIG_LOG, (._name = _object,))
90
95
#define Z_LOG_INSTANCE_FULL_NAME(_module_name, _inst_name) \
96
UTIL_CAT(_module_name, UTIL_CAT(_, _inst_name))
97
107
#define Z_LOG_OBJECT_PTR(_name) \
108
COND_CODE_1(CONFIG_LOG_RUNTIME_FILTERING, \
109
(&LOG_ITEM_DYNAMIC_DATA(_name)), \
110
(&Z_LOG_ITEM_CONST_DATA(_name))) \
111
121
#define LOG_INSTANCE_PTR(_module_name, _inst_name) \
122
Z_LOG_OBJECT_PTR(Z_LOG_INSTANCE_FULL_NAME(_module_name, _inst_name))
123
136
#define LOG_INSTANCE_PTR_INIT(_name, _module_name, _inst_name) \
137
LOG_OBJECT_PTR_INIT(_name, LOG_INSTANCE_PTR(_module_name, _inst_name))
138
139
#define Z_LOG_INSTANCE_STRUCT \
140
COND_CODE_1(CONFIG_LOG_RUNTIME_FILTERING, \
141
(struct log_source_dynamic_data), \
142
(const struct log_source_const_data))
143
154
#define LOG_INSTANCE_PTR_DECLARE(_name) \
155
COND_CODE_1(CONFIG_LOG, (Z_LOG_INSTANCE_STRUCT * _name), \
156
(int _name[TOOLCHAIN_HAS_ZLA ? 0 : 1]))
157
158
#define Z_LOG_RUNTIME_INSTANCE_REGISTER(_module_name, _inst_name) \
159
STRUCT_SECTION_ITERABLE_ALTERNATE(log_dynamic, log_source_dynamic_data, \
160
LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst_name))
161
162
#define Z_LOG_INSTANCE_REGISTER(_module_name, _inst_name, _level) \
163
Z_LOG_CONST_ITEM_REGISTER( \
164
Z_LOG_INSTANCE_FULL_NAME(_module_name, _inst_name), \
165
STRINGIFY(_module_name._inst_name), \
166
_level); \
167
IF_ENABLED(CONFIG_LOG_RUNTIME_FILTERING, \
168
(Z_LOG_RUNTIME_INSTANCE_REGISTER(_module_name, _inst_name)))
169
181
#define LOG_INSTANCE_REGISTER(_module_name, _inst_name, _level) \
182
IF_ENABLED(CONFIG_LOG, (Z_LOG_INSTANCE_REGISTER(_module_name, _inst_name, _level)))
183
185
187
188
#ifdef __cplusplus
189
}
190
#endif
191
192
#endif
/* ZEPHYR_INCLUDE_LOGGING_LOG_INSTANCE_H_ */
types.h
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
uint8_t
__UINT8_TYPE__ uint8_t
Definition
stdint.h:88
iterable_sections.h
Iterable sections helpers.
include
zephyr
logging
log_instance.h
Generated on
for Zephyr Project API by
1.16.1