diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2021-03-15 19:58:15 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-03-25 21:19:03 +0000 |
commit | 8c1630fb33a2bc8a025370dbda2618c92f7e43b7 (patch) | |
tree | 92ef32066f48c12a197fac91dfb070d637f28274 | |
parent | 62244e609b20350a237f97d37546c51869a54a71 (diff) | |
download | chrome-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.c | 2 | ||||
-rw-r--r-- | include/ec_commands.h | 2 | ||||
-rw-r--r-- | include/peripheral_charger.h | 3 |
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 { |