diff options
author | Mary Ruthven <mruthven@chromium.org> | 2021-11-09 13:36:43 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-18 04:46:17 +0000 |
commit | b7256c832549b598c9a956f7856ba0e3cf8ea9b6 (patch) | |
tree | a76b5fd33bf1fe1b0b1cff6cc4cae30d5cfbfd5c | |
parent | 2869cee54f2aa53970234a38a7714ad7d82fe4d7 (diff) | |
download | chrome-ec-b7256c832549b598c9a956f7856ba0e3cf8ea9b6.tar.gz |
Revert "version: Make ver_get_num_commits work for on-flash images"
This reverts commit 91d4fec4606e2145d522274c786d46d12721cf9a.
BUG=b:200823466
TEST=make buildall -j
Change-Id: I3859dd2069397eaeb8c6ae361c7663b32b53e01f
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3273359
Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org>
-rw-r--r-- | common/system.c | 3 | ||||
-rw-r--r-- | common/version.c | 43 | ||||
-rw-r--r-- | include/system.h | 8 | ||||
-rw-r--r-- | include/version.h | 7 |
4 files changed, 19 insertions, 42 deletions
diff --git a/common/system.c b/common/system.c index 411be8d077..67185aa512 100644 --- a/common/system.c +++ b/common/system.c @@ -667,7 +667,8 @@ uint32_t flash_get_rw_offset(enum system_image_copy_t copy) return CONFIG_EC_PROTECTED_STORAGE_OFF + CONFIG_RO_STORAGE_OFF; } -const struct image_data *system_get_image_data(enum system_image_copy_t copy) +static const struct image_data *system_get_image_data( + enum system_image_copy_t copy) { static struct image_data data; diff --git a/common/version.c b/common/version.c index 13a200b1b5..962f4621e8 100644 --- a/common/version.c +++ b/common/version.c @@ -9,8 +9,6 @@ #include "common.h" #include "compile_time_macros.h" #include "ec_version.h" -#include "stddef.h" -#include "system.h" #include "version.h" BUILD_ASSERT(CONFIG_ROLLBACK_VERSION >= 0); @@ -30,15 +28,19 @@ const struct image_data __keep current_image_data const char build_info[] __keep __attribute__((section(".rodata.buildinfo"))) = VERSION " " DATE " " BUILDER; -static int get_num_commits(const struct image_data *data) +uint32_t ver_get_numcommits(void) { + int i; int numperiods = 0; - int ret = 0; - size_t i; - - /* Version string format is name_major.branch.commits-hash[dirty] */ - for (i = 0; i < sizeof(data->version); i++) { - if (data->version[i] == '.') { + uint32_t ret = 0; + + /* + * Version string is formatted like: + * name_major.branch.numcommits-hash[dirty] + * we want to return the numcommits as an int. + */ + for (i = 0; i < 32; i++) { + if (current_image_data.version[i] == '.') { numperiods++; if (numperiods == 2) break; @@ -46,27 +48,12 @@ static int get_num_commits(const struct image_data *data) } i++; - for (; i < sizeof(data->version); i++) { - int d; - if (data->version[i] == '-') + for (; i < 32; i++) { + if (current_image_data.version[i] == '-') break; ret *= 10; - d = data->version[i] - '0'; - if (d < 0 || d > 9) - return 0; - ret += d; + ret += current_image_data.version[i] - '0'; } - return (i == sizeof(data->version) ? 0 : ret); - -} - -int ver_get_num_commits(enum system_image_copy_t copy) -{ - const struct image_data *data; - if (IS_ENABLED(CONFIG_COMMON_RUNTIME)) - data = system_get_image_data(copy); - else - data = ¤t_image_data; - return data ? get_num_commits(data) : 0; + return (i == 32 ? 0 : ret); } diff --git a/include/system.h b/include/system.h index 00fa6f718c..6cb0ba1e4c 100644 --- a/include/system.h +++ b/include/system.h @@ -200,14 +200,6 @@ int system_run_image_copy(enum system_image_copy_t copy); int32_t system_get_rollback_version(enum system_image_copy_t copy); /** - * Get the image data of an image - * - * @param copy Image copy to get the version of. - * @return Image data - */ -const struct image_data *system_get_image_data(enum system_image_copy_t copy); - -/** * Get the version string for an image * * @param copy Image copy to get version from, or SYSTEM_IMAGE_UNKNOWN diff --git a/include/version.h b/include/version.h index 71e215c8e2..d11ac7d9d9 100644 --- a/include/version.h +++ b/include/version.h @@ -9,7 +9,6 @@ #define __CROS_EC_VERSION_H #include "common.h" -#include "system.h" #define CROS_EC_IMAGE_DATA_COOKIE1 0xce778899 #define CROS_EC_IMAGE_DATA_COOKIE2 0xceaabbdd @@ -28,9 +27,7 @@ extern const char __image_data_offset[]; extern const void *__image_size; /** - * Get the number of commits of an image - * - * @return Number of commits in integer or 0 on error + * Get the number of commits field from version string. */ -int ver_get_num_commits(enum system_image_copy_t copy); +uint32_t ver_get_numcommits(void); #endif /* __CROS_EC_VERSION_H */ |