summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2021-03-15 19:58:15 -0700
committerCommit Bot <commit-bot@chromium.org>2021-03-25 21:19:03 +0000
commit8c1630fb33a2bc8a025370dbda2618c92f7e43b7 (patch)
tree92ef32066f48c12a197fac91dfb070d637f28274
parent62244e609b20350a237f97d37546c51869a54a71 (diff)
downloadchrome-ec-8c1630fb33a2bc8a025370dbda2618c92f7e43b7.tar.gz
PCHG: Check array sizes for state and event texts
This patch makes a compiler check array sizes used to stringify PCHG states and events. BUG=b:173235954,b:183151376 BRANCH=trogdor TEST=make Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: I13dc399dc973d8a661492236668c22b323e7c1c4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2765423 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> (cherry picked from commit 2913c2f6c5afa41f086a6f0242165cbdf9dad730) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2787472
-rw-r--r--common/peripheral_charger.c2
-rw-r--r--include/ec_commands.h2
-rw-r--r--include/peripheral_charger.h3
3 files changed, 7 insertions, 0 deletions
diff --git a/common/peripheral_charger.c b/common/peripheral_charger.c
index 05dde52a40..c7371c5dc5 100644
--- a/common/peripheral_charger.c
+++ b/common/peripheral_charger.c
@@ -36,6 +36,7 @@ static const char *_text_state(enum pchg_state state)
{
/* TODO: Use "S%d" for normal build. */
static const char * const state_names[] = EC_PCHG_STATE_TEXT;
+ BUILD_ASSERT(ARRAY_SIZE(state_names) == PCHG_STATE_COUNT);
if (state >= sizeof(state_names))
return "UNDEF";
@@ -64,6 +65,7 @@ static const char *_text_event(enum pchg_event event)
[PCHG_EVENT_ENABLE] = "ENABLE",
[PCHG_EVENT_DISABLE] = "DISABLE",
};
+ BUILD_ASSERT(ARRAY_SIZE(event_names) == PCHG_EVENT_COUNT);
if (event >= sizeof(event_names))
return "UNDEF";
diff --git a/include/ec_commands.h b/include/ec_commands.h
index 96f7fbc547..6a73621cdd 100644
--- a/include/ec_commands.h
+++ b/include/ec_commands.h
@@ -6814,6 +6814,8 @@ enum pchg_state {
PCHG_STATE_CHARGING,
/* Device is fully charged. It implies DETECTED (& not charging). */
PCHG_STATE_FULL,
+ /* Put no more entry below */
+ PCHG_STATE_COUNT,
};
#define EC_PCHG_STATE_TEXT { \
diff --git a/include/peripheral_charger.h b/include/peripheral_charger.h
index 26b7b98a2e..b3d19edc52 100644
--- a/include/peripheral_charger.h
+++ b/include/peripheral_charger.h
@@ -89,6 +89,9 @@ enum pchg_event {
PCHG_EVENT_INITIALIZE,
PCHG_EVENT_ENABLE,
PCHG_EVENT_DISABLE,
+
+ /* Counter. Add new entry above. */
+ PCHG_EVENT_COUNT,
};
enum pchg_error {