I have gone through the concepts of macros but never encountered
#define reg_add_cfghwmod_beacon_led_control(a,b) \
_reg_add_cfghwmod_beacon_led_control(a)
This kind of syntax can any one explain me what the above macro means.
This is a multi-line MACRO.
Regarding the trailing \, if you see the syntax of a #define directive, C11 standard, chapter §6.10, it says,
# define identifier replacement-list new-line
so, a newline ends the replacement-list and effectively, the directive. So, to have multi-lined definition of #define directive, the \ is used to escape the newline and to make the statements of the follwing line as a part of the replacement list of the same MACRO.
b in the MACRO definition,Depends on coding logic. Maybe an attempt to fallback to some earlier version of API having only one argument. Pure guesswork
TL;DR; All it does is to replace the text (Possibly a function call)
reg_add_cfghwmod_beacon_led_control(a,b)
with
_reg_add_cfghwmod_beacon_led_control(a)
(a,b) part was implemented as a wrapper for some newer version, but they wanted to fall back to the earlier version with 1 argument. Just maybe
bmissing, or something else?