summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/src
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-11-07 16:43:11 +1100
committerChris Johns <chrisj@rtems.org>2017-11-10 13:34:06 +1100
commit6f3fb8a547f5700416744a7dc82b3cb83177c7a8 (patch)
tree5a5869b9dcf63196c0c1ef06b2ccdc4006d48f05 /cpukit/sapi/src
parentpppd/Makefile.am: Add support/include (diff)
downloadrtems-6f3fb8a547f5700416744a7dc82b3cb83177c7a8.tar.bz2
cpukit: Add a Version API.
Provide functions to get the version string, major, minor and revision numbers and the version control identifer that is a unique tag for the version control system. Update #3199.
Diffstat (limited to 'cpukit/sapi/src')
-rw-r--r--cpukit/sapi/src/version.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/cpukit/sapi/src/version.c b/cpukit/sapi/src/version.c
new file mode 100644
index 0000000000..d240b1b0df
--- /dev/null
+++ b/cpukit/sapi/src/version.c
@@ -0,0 +1,63 @@
+/**
+ * @file
+ *
+ * @brief Creates the version strings from the various pieces of version
+ * information. The main version number is part of the build system and is
+ * stamped into rtems/score/cpuopts.h. The version control key string is
+ * extracted from the version control tool when the code is being built and is
+ * updated if it has changed. The key may indicate there are local
+ * modification.
+ *
+ * @ingroup ClassicVersion
+ */
+
+/*
+ * Copyright (C) 2017.
+ * Chris Johns <chrisj@rtems.org>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems.h>
+#include <rtems/version.h>
+
+#include "version-vc-key.h"
+
+const char *rtems_version( void )
+{
+#ifdef RTEMS_VERSION_VC_KEY
+ return RTEMS_VERSION "." RTEMS_VERSION_VC_KEY;
+#else
+ return RTEMS_VERSION;
+#endif
+}
+
+int rtems_version_major( void )
+{
+ return __RTEMS_MAJOR__;
+}
+
+int rtems_version_minor( void )
+{
+ return __RTEMS_MINOR__;
+}
+
+int rtems_version_revision( void )
+{
+ return __RTEMS_REVISION__;
+}
+
+const char *rtems_version_control_key( void )
+{
+#ifdef RTEMS_VERSION_VC_KEY
+ return RTEMS_VERSION_VC_KEY;
+#else
+ return NULL;
+#endif
+}