sys: util: Add SIZEOF_FIELD() macro
This macro allows to know the size of a struct member at compile time. Several parts of the Zephyr code are currently using directly the macro code. Also added a unit test. Signed-off-by: Adrien Ricciardi <aricciardi@baylibre.com>
This commit is contained in:
parent
34f4a0f6bc
commit
bf8b1d67d6
2 changed files with 25 additions and 0 deletions
|
@ -803,4 +803,19 @@ ZTEST(util, test_CONCAT)
|
|||
zassert_equal(CONCAT(CAT_PART1, CONCAT(CAT_PART2, CAT_PART3)), 123);
|
||||
}
|
||||
|
||||
ZTEST(util, test_SIZEOF_FIELD)
|
||||
{
|
||||
struct test_t {
|
||||
uint32_t a;
|
||||
uint8_t b;
|
||||
uint8_t c[17];
|
||||
int16_t d;
|
||||
};
|
||||
|
||||
BUILD_ASSERT(SIZEOF_FIELD(struct test_t, a) == 4, "The a member is 4-byte wide.");
|
||||
BUILD_ASSERT(SIZEOF_FIELD(struct test_t, b) == 1, "The b member is 1-byte wide.");
|
||||
BUILD_ASSERT(SIZEOF_FIELD(struct test_t, c) == 17, "The c member is 17-byte wide.");
|
||||
BUILD_ASSERT(SIZEOF_FIELD(struct test_t, d) == 2, "The d member is 2-byte wide.");
|
||||
}
|
||||
|
||||
ZTEST_SUITE(util, NULL, NULL, NULL, NULL, NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue