mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 20:34:33 +00:00
lib: Comment on how macro works
Signed-off-by: Donald Lee <dlqs@gmx.com>
This commit is contained in:
parent
59a35b667d
commit
70d995abd4
@ -122,8 +122,22 @@ void frrscript_register_type_codecs(struct frrscript_codec *codecs);
|
|||||||
*/
|
*/
|
||||||
void frrscript_init(const char *scriptdir);
|
void frrscript_init(const char *scriptdir);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This macro is mapped to every (name, value) in frrscript_call,
|
||||||
|
* so this in turn maps them onto their encoders
|
||||||
|
*/
|
||||||
#define ENCODE_ARGS(name, value) ENCODE_ARGS_WITH_STATE(lfs->L, value)
|
#define ENCODE_ARGS(name, value) ENCODE_ARGS_WITH_STATE(lfs->L, value)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This macro is also mapped to every (name, value) in frrscript_call, but
|
||||||
|
* not every value can be mapped to its decoder - only those that appear
|
||||||
|
* in the returned table will. To find out if they appear in the returned
|
||||||
|
* table, first pop the value and check if its nil. Only call the decoder
|
||||||
|
* if non-nil.
|
||||||
|
*
|
||||||
|
* At the end, the only thing left on the stack should be the
|
||||||
|
* returned table.
|
||||||
|
*/
|
||||||
#define DECODE_ARGS(name, value) \
|
#define DECODE_ARGS(name, value) \
|
||||||
do { \
|
do { \
|
||||||
lua_getfield(lfs->L, 1, name); \
|
lua_getfield(lfs->L, 1, name); \
|
||||||
|
Loading…
Reference in New Issue
Block a user