diff --git a/src/ly_common.c b/src/ly_common.c index 28d75141c..449c862f9 100644 --- a/src/ly_common.c +++ b/src/ly_common.c @@ -40,19 +40,53 @@ #include "version.h" #include "xml.h" -LIBYANG_API_DEF struct ly_version ly_version_so = { - .major = LY_VERSION_MAJOR, - .minor = LY_VERSION_MINOR, - .micro = LY_VERSION_MICRO, - .str = LY_VERSION -}; +LIBYANG_API_DEF uint32_t +ly_version_so_major(void) +{ + return LY_VERSION_MAJOR; +} -LIBYANG_API_DEF struct ly_version ly_version_proj = { - .major = LY_PROJ_VERSION_MAJOR, - .minor = LY_PROJ_VERSION_MINOR, - .micro = LY_PROJ_VERSION_MICRO, - .str = LY_PROJ_VERSION -}; +LIBYANG_API_DEF uint32_t +ly_version_so_minor(void) +{ + return LY_VERSION_MINOR; +} + +LIBYANG_API_DEF uint32_t +ly_version_so_micro(void) +{ + return LY_VERSION_MICRO; +} + +LIBYANG_API_DEF const char * +ly_version_so_str(void) +{ + return LY_VERSION; +} + +LIBYANG_API_DEF uint32_t +ly_version_proj_major(void) +{ + return LY_PROJ_VERSION_MAJOR; +} + +LIBYANG_API_DEF uint32_t +ly_version_proj_minor(void) +{ + return LY_PROJ_VERSION_MINOR; +} + +LIBYANG_API_DEF uint32_t +ly_version_proj_micro(void) +{ + return LY_PROJ_VERSION_MICRO; +} + +LIBYANG_API_DEF const char * +ly_version_proj_str(void) +{ + return LY_PROJ_VERSION; +} void * ly_realloc(void *ptr, size_t size) diff --git a/src/version.h.in b/src/version.h.in index 2fe666387..021cd058a 100644 --- a/src/version.h.in +++ b/src/version.h.in @@ -32,22 +32,61 @@ extern "C" { #define LY_PROJ_VERSION_MICRO @LIBYANG_MICRO_VERSION@ /**< project micro version number */ #define LY_PROJ_VERSION "@LIBYANG_VERSION@" /**< project version string */ -struct ly_version { - uint32_t major; /**< Major version number */ - uint32_t minor; /**< Minor version number */ - uint32_t micro; /**< Micro version number */ - const char *str; /**< Version string */ -}; +/** + * @brief Get libyang major SO version. + * + * @return LY version. + */ +LIBYANG_API_DECL uint32_t ly_version_so_major(void); /** - * @brief libyang SO version. + * @brief Get libyang minor SO version. + * + * @return LY version. */ -LIBYANG_API_DECL extern struct ly_version ly_version_so; +LIBYANG_API_DECL uint32_t ly_version_so_minor(void); /** - * @brief libyang project version. + * @brief Get libyang micro SO version. + * + * @return LY version. + */ +LIBYANG_API_DECL uint32_t ly_version_so_micro(void); + +/** + * @brief Get libyang string SO version. + * + * @return LY version. + */ +LIBYANG_API_DECL const char *ly_version_so_str(void); + +/** + * @brief Get libyang major project version. + * + * @return LY version. + */ +LIBYANG_API_DECL uint32_t ly_version_proj_major(void); + +/** + * @brief Get libyang minor project version. + * + * @return LY version. + */ +LIBYANG_API_DECL uint32_t ly_version_proj_minor(void); + +/** + * @brief Get libyang micro project version. + * + * @return LY version. + */ +LIBYANG_API_DECL uint32_t ly_version_proj_micro(void); + +/** + * @brief Get libyang string project version. + * + * @return LY version. */ -LIBYANG_API_DECL extern struct ly_version ly_version_proj; +LIBYANG_API_DECL const char *ly_version_proj_str(void); #ifdef __cplusplus }