diff options
| author | Xiang W <[email protected]> | 2023-08-21 22:11:45 +0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2023-09-06 17:06:12 +0530 |
| commit | b20bd479eff1588bfea52cceda213c40cc273ba9 (patch) | |
| tree | 1472cc1eb79f7d1eec77575eab1ac7af40f543c1 | |
| parent | a9cffd65324caf5512e3ebb5b08d5b85efd0a23c (diff) | |
lib: sbi: improve the definition of SBI_IPI_EVENT_MAX
The previous definition had the assumption that the machine word length
is equal to the word length of LONG. Remove this assumption and add a
static check to prevent errors in subsequent modifications.
Signed-off-by: Xiang W <[email protected]>
Reviewed-by: Anup Patel <[email protected]>
| -rw-r--r-- | include/sbi/sbi_ipi.h | 2 | ||||
| -rw-r--r-- | lib/sbi/sbi_ipi.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/include/sbi/sbi_ipi.h b/include/sbi/sbi_ipi.h index c64f422c..6b5e260b 100644 --- a/include/sbi/sbi_ipi.h +++ b/include/sbi/sbi_ipi.h @@ -14,7 +14,7 @@ /* clang-format off */ -#define SBI_IPI_EVENT_MAX __riscv_xlen +#define SBI_IPI_EVENT_MAX (8 * __SIZEOF_LONG__) /* clang-format on */ diff --git a/lib/sbi/sbi_ipi.c b/lib/sbi/sbi_ipi.c index ad091545..0d8edab0 100644 --- a/lib/sbi/sbi_ipi.c +++ b/lib/sbi/sbi_ipi.c @@ -27,6 +27,11 @@ struct sbi_ipi_data { unsigned long ipi_type; }; +_Static_assert( + 8 * sizeof(((struct sbi_ipi_data*)0)->ipi_type) == SBI_IPI_EVENT_MAX, + "type of sbi_ipi_data.ipi_type has changed, please redefine SBI_IPI_EVENT_MAX" + ); + static unsigned long ipi_data_off; static const struct sbi_ipi_device *ipi_dev = NULL; static const struct sbi_ipi_event_ops *ipi_ops_array[SBI_IPI_EVENT_MAX]; |
