1
1
//! @file
2
2
//!
3
3
//! Copyright (c) Memfault, Inc.
4
- //! See License.txt for details
4
+ //! See LICENSE for details
5
5
//!
6
6
//! @brief
7
7
//! See header for more details
13
13
#include "memfault/core/build_info.h"
14
14
#include "memfault_build_id_private.h"
15
15
16
+ // OS version information
17
+ #if defined(MEMFAULT_OS_VERSION_NAME ) ^ defined(MEMFAULT_OS_VERSION_STRING )
18
+ #error "MEMFAULT_OS_VERSION_NAME and MEMFAULT_OS_VERSION_STRING must be both defined or undefined"
19
+ #elif !(defined(MEMFAULT_OS_VERSION_NAME ) && defined(MEMFAULT_OS_VERSION_STRING ))
20
+ #if defined(__ZEPHYR__ )
21
+ // Either Zephyr or NCS. We can then rely on the GNU __has_include extension to
22
+ // be available.
23
+ #if __has_include ("ncs_version.h" )
24
+ #include "ncs_version.h"
25
+ #define MEMFAULT_OS_VERSION_NAME "ncs"
26
+ #define MEMFAULT_OS_VERSION_STRING NCS_VERSION_STRING
27
+ #else
28
+ // This is Zephyr's version.h file, since Memfault's is namespaced as
29
+ // "memfault/version.h".
30
+ #include <version.h>
31
+ #define MEMFAULT_OS_VERSION_NAME "zephyr"
32
+ #define MEMFAULT_OS_VERSION_STRING KERNEL_VERSION_STRING
33
+ #endif /* __has_include("ncs_version.h") */
34
+
35
+ #elif defined(ESP_PLATFORM )
36
+ // ESP-IDF, use the command-line defined IDF_VER string
37
+ #define MEMFAULT_OS_VERSION_NAME "esp-idf"
38
+ #define MEMFAULT_OS_VERSION_STRING IDF_VER
39
+ #else
40
+ // No OS version information available
41
+ #define MEMFAULT_OS_VERSION_NAME ""
42
+ #define MEMFAULT_OS_VERSION_STRING ""
43
+ #endif /* defined(__ZEPHYR__) */
44
+ #endif /* defined(MEMFAULT_OS_VERSION_NAME) ^ defined(MEMFAULT_OS_VERSION_STRING) \
45
+ */
46
+
16
47
#if MEMFAULT_USE_GNU_BUILD_ID
17
48
18
49
// Note: This variable is emitted by the linker script
@@ -24,6 +55,10 @@ MEMFAULT_BUILD_ID_QUALIFIER sMemfaultBuildIdStorage g_memfault_build_id = {
24
55
.short_len = MEMFAULT_EVENT_INCLUDED_BUILD_ID_SIZE_BYTES ,
25
56
.storage = MEMFAULT_GNU_BUILD_ID_SYMBOL ,
26
57
.sdk_version = MEMFAULT_SDK_VERSION ,
58
+ .os_version = {
59
+ .name = MEMFAULT_OS_VERSION_NAME ,
60
+ .version = MEMFAULT_OS_VERSION_STRING ,
61
+ },
27
62
};
28
63
#else
29
64
@@ -38,5 +73,9 @@ MEMFAULT_BUILD_ID_QUALIFIER sMemfaultBuildIdStorage g_memfault_build_id = {
38
73
.short_len = MEMFAULT_EVENT_INCLUDED_BUILD_ID_SIZE_BYTES ,
39
74
.storage = g_memfault_sdk_derived_build_id ,
40
75
.sdk_version = MEMFAULT_SDK_VERSION ,
76
+ .os_version = {
77
+ .name = MEMFAULT_OS_VERSION_NAME ,
78
+ .version = MEMFAULT_OS_VERSION_STRING ,
79
+ },
41
80
};
42
81
#endif
0 commit comments