From b53356f66bffbb6bf6253f58af7fc716f71101ba Mon Sep 17 00:00:00 2001 From: Mary Ruthven Date: Fri, 14 Apr 2023 11:09:40 -0700 Subject: board_space: use a macro to define info space sizes Check the size of the field to determine what size each space is. BUG=none TEST=BOARD_ID size is still 12, SN DATA size is still 16, APRV size is still 4, and FACTORY CFG size is still 8. Change-Id: Ib01baa7a9b63c5d6cc99b5feff71f50095cac901 Signed-off-by: Mary Ruthven Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4426795 Reviewed-by: Vadim Bendebury --- chip/g/board_space.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/chip/g/board_space.h b/chip/g/board_space.h index 0c15bde5bf..0f7a9440e7 100644 --- a/chip/g/board_space.h +++ b/chip/g/board_space.h @@ -77,16 +77,19 @@ BUILD_ASSERT(sizeof(struct info1_layout) == FLASH_INFO_SIZE); #define INFO_SPACE_OFFSET(field) (INFO_BOARD_SPACE_OFFSET + \ offsetof(struct info1_board_space, field)) -#define INFO_BOARD_ID_SIZE sizeof(struct board_id) +#define INFO_SPACE_SIZE(field) \ + (sizeof(((struct info1_board_space *)0)->field)) + +#define INFO_BOARD_ID_SIZE INFO_SPACE_SIZE(bid) #define INFO_BOARD_ID_OFFSET INFO_SPACE_OFFSET(bid) -#define INFO_SN_DATA_SIZE sizeof(struct sn_data) +#define INFO_SN_DATA_SIZE INFO_SPACE_SIZE(sn) #define INFO_SN_DATA_OFFSET INFO_SPACE_OFFSET(sn) -#define INFO_APRV_DATA_SIZE sizeof(uint32_t) +#define INFO_APRV_DATA_SIZE INFO_SPACE_SIZE(aprv_not_needed) #define INFO_APRV_DATA_OFFSET INFO_SPACE_OFFSET(aprv_not_needed) -#define INFO_FACTORY_CFG_SIZE sizeof(uint64_t) +#define INFO_FACTORY_CFG_SIZE INFO_SPACE_SIZE(factory_cfg) #define INFO_FACTORY_CFG_OFFSET INFO_SPACE_OFFSET(factory_cfg) /* -- cgit v1.2.1