The current implementation relies on preprocessor concatenation to
work. This makes it incompatible with any content which expansion
is not a valid preprocessor token such as strings, pointers, etc.
and therefore limits its usefulness. Replace it with an implementation
that can cope with all cases.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Moving the BIT macros from <sys/util.h> to <sys/util_macro.h>
allows the BIT macros to be used in device trees.
Testing: twister -T tests/drivers/build_all/sensor/
Signed-off-by: Sam Hurst <sbh1187@gmail.com>
Recursive macros are more generic but they are very depending for
preprocessor. When they are used extensively they can prolong
compilation even ten times. Replaced them with brute force
implementation for:
- FOR_EACH macros
- GET_N_ARG
- GET_ARGS_LESS_N
- UTIL_LISTIFY
- UTIL_REPEAT
New implementation provides same functionality but it is limited to 64
input arguments. This is not a hard limitation and can be increased
in the future.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This reverts commit de84575e2e.
Its merge broke the USB audio sample, which is failing CI in unrelated
PRs.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Recursive macros are more generic but they are very depending for
preprocessor. When they are used extensively they can prolong
compilation even ten times. Replaced them with brute force
implementation for:
- FOR_EACH macros
- GET_N_ARG
- GET_ARGS_LESS_N
- UTIL_LISTIFY
- UTIL_REPEAT
New implementation provides same functionality but it is limited to 64
input arguments. This is not a hard limitation and can be increased
in the future.
Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
Add back Doxygen documentation that previously existed in sys/util.h
and was moved to sys/util_macro.h.
Also fixes#29896
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
Breathe>=4.23.0 renders \xrefitem, including its specializations like
\deprecated, so add the proper `()` to symbols existing in previously
declared \deprecated messages so they are properly resolved.
Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
The <sys/util.h>, in current form, can not be used with DTS as it
contains non-C pre-processor definitions which breake DTS interpreter.
This commit fixes the problem by moving most of preprocessor macros
from util.h to util_macro.h. Since util_mcaro.h contains only
preprocessor macros, without include dependencies, it can be safely
included in DTS. It is similar way the
<dts/arm/<manufacturer>/pinctrl_<manufacturer>_<soc>.h files are
included.
This fix and align the extern "C" closing brack inside non assembly
block.
The issue was raised when try create a macro for pincrtl with a
variable length flag list.
Signed-off-by: Gerson Fernando Budke <nandojve@gmail.com>