summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Monjalon <thomas.monjalon@6wind.com>2013-04-16 11:44:12 +0200
committerDavid Marchand <david.marchand@6wind.com>2014-02-26 11:07:29 +0100
commitc528a3b7d5be8603ac3b016e512190c1092f958c (patch)
tree58b239c2250ed8bc14e262d02fd156772620a4e8
parent926fe27039bbef3a72e95a96d1948299a5a781e8 (diff)
downloaddpdk-c528a3b7d5be8603ac3b016e512190c1092f958c.zip
dpdk-c528a3b7d5be8603ac3b016e512190c1092f958c.tar.gz
dpdk-c528a3b7d5be8603ac3b016e512190c1092f958c.tar.xz
version: add 4th digit and helper macros
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>
-rw-r--r--lib/librte_eal/common/include/rte_eal.h1
-rw-r--r--lib/librte_eal/common/include/rte_version.h27
2 files changed, 24 insertions, 4 deletions
diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h
index fe1323d..658b4f7 100644
--- a/lib/librte_eal/common/include/rte_eal.h
+++ b/lib/librte_eal/common/include/rte_eal.h
@@ -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. */
/**
diff --git a/lib/librte_eal/common/include/rte_version.h b/lib/librte_eal/common/include/rte_version.h
index 79ff2ea..56dfa32 100644
--- a/lib/librte_eal/common/include/rte_version.h
+++ b/lib/librte_eal/common/include/rte_version.h
@@ -67,13 +67,32 @@ 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.
*/
#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