version: add 4th digit and helper macros
authorThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 16 Apr 2013 09:44:12 +0000 (11:44 +0200)
committerDavid Marchand <david.marchand@6wind.com>
Wed, 26 Feb 2014 10:07:29 +0000 (11:07 +0100)
Applications can test versions, for compatibility, this way:
#if RTE_VERSION >= RTE_VERSION_NUM(1,2,3,4)

RTE_VERSION was already defined for use with rte_config.
It is moved in rte_version.h and updated to current version number.

Note that the first tag having this helper is 1.2.3r2.
Releases r0 have not this patch.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
lib/librte_eal/common/include/rte_eal.h
lib/librte_eal/common/include/rte_version.h

index fe1323d..658b4f7 100644 (file)
@@ -46,7 +46,6 @@
 extern "C" {
 #endif
 
-#define RTE_VERSION 1 /**< The version of the RTE configuration structure. */
 #define RTE_MAGIC 19820526 /**< Magic number written by the main partition when ready. */
 
 /**
index 79ff2ea..56dfa32 100644 (file)
@@ -66,6 +66,25 @@ extern "C" {
  */
 #define RTE_VER_PATCH_LEVEL 0
 
+/**
+ * Patch release number i.e. the w in x.y.zrw
+ */
+#define RTE_VER_PATCH_RELEASE 0
+
+/**
+ * Macro to compute a version number usable for comparisons
+ */
+#define RTE_VERSION_NUM(a,b,c,d) ((a) << 24 | (b) << 16 | (c) << 8 | (d))
+
+/**
+ * All version numbers in one to compare with RTE_VERSION_NUM()
+ */
+#define RTE_VERSION RTE_VERSION_NUM( \
+                       RTE_VER_MAJOR, \
+                       RTE_VER_MINOR, \
+                       RTE_VER_PATCH_LEVEL, \
+                       RTE_VER_PATCH_RELEASE)
+
 /**
  * Extra string to be appended to version number,
  * for example: pre1, EAR, final etc.
@@ -73,7 +92,7 @@ extern "C" {
 #define RTE_VER_SUFFIX ""
 
 /**
- * Function returning string of version number: "RTE x.y.z"
+ * Function returning string of version number: "RTE x.y.zrw"
  * @return
  *     string
  */
@@ -83,13 +102,15 @@ rte_version(void) {
                return RTE_VER_PREFIX" "
                                RTE_STR(RTE_VER_MAJOR)"."
                                RTE_STR(RTE_VER_MINOR)"."
-                               RTE_STR(RTE_VER_PATCH_LEVEL)
+                               RTE_STR(RTE_VER_PATCH_LEVEL)"r"
+                               RTE_STR(RTE_VER_PATCH_RELEASE)
                                "-"RTE_VER_SUFFIX;
        else
                return RTE_VER_PREFIX" "
                                RTE_STR(RTE_VER_MAJOR)"."
                                RTE_STR(RTE_VER_MINOR)"."
-                               RTE_STR(RTE_VER_PATCH_LEVEL);
+                               RTE_STR(RTE_VER_PATCH_LEVEL)"r"
+                               RTE_STR(RTE_VER_PATCH_RELEASE);
 }
 
 #ifdef __cplusplus