lib: add simple generic version helpers

Add some simple helpers for generic major+minor+sub version
values.

Signed-off-by: Mark Stapp <mjs@cisco.com>
This commit is contained in:
Mark Stapp 2024-04-05 13:14:48 -04:00
parent 8cfa3b57e9
commit f090079390
2 changed files with 20 additions and 0 deletions

View file

@ -1450,3 +1450,12 @@ void _libfrr_version(void)
write(1, banner, sizeof(banner) - 1);
_exit(0);
}
/* Render simple version tuple to string */
const char *frr_vers2str(uint32_t version, char *buf, int buflen)
{
snprintf(buf, buflen, "%d.%d.%d", MAJOR_FRRVERSION(version),
MINOR_FRRVERSION(version), SUB_FRRVERSION(version));
return buf;
}

View file

@ -233,6 +233,17 @@ extern bool frr_is_after_fork;
extern bool debug_memstats_at_exit;
/*
* Version numbering: MAJOR (8) | MINOR (16) | SUB (8)
*/
#define MAKE_FRRVERSION(maj, min, sub) \
((((maj) & 0xff) << 24) | (((min) & 0xffff) << 8) | ((sub) & 0xff))
#define MAJOR_FRRVERSION(v) (((v) >> 24) & 0xff)
#define MINOR_FRRVERSION(v) (((v) >> 8) & 0xffff)
#define SUB_FRRVERSION(v) ((v) & 0xff)
const char *frr_vers2str(uint32_t version, char *buf, int buflen);
#ifdef __cplusplus
}
#endif