/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ /* Embed firmware version number in the binary */ #include #include "common.h" #include "ec_version.h" #include "version.h" const struct version_struct __keep version_data __attribute__((section(".rodata.ver"))) = { CROS_EC_VERSION_COOKIE1, CROS_EC_VERSION32, CROS_EC_VERSION_COOKIE2 }; const char build_info[] __keep __attribute__((section(".rodata.buildinfo"))) = CROS_EC_VERSION " " DATE " " BUILDER; uint32_t ver_get_numcommits(void) { int i; int numperiods = 0; 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 (version_data.version[i] == '.') { numperiods++; if (numperiods == 2) break; } } i++; for (; i < 32; i++) { if (version_data.version[i] == '-') break; ret *= 10; ret += version_data.version[i] - '0'; } return (i == 32 ? 0 : ret); }