mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 23:41:23 +01:00
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 <wxjstz@126.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define SBI_IPI_EVENT_MAX __riscv_xlen
|
#define SBI_IPI_EVENT_MAX (8 * __SIZEOF_LONG__)
|
||||||
|
|
||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
|
||||||
|
@@ -27,6 +27,11 @@ struct sbi_ipi_data {
|
|||||||
unsigned long ipi_type;
|
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 unsigned long ipi_data_off;
|
||||||
static const struct sbi_ipi_device *ipi_dev = NULL;
|
static const struct sbi_ipi_device *ipi_dev = NULL;
|
||||||
static const struct sbi_ipi_event_ops *ipi_ops_array[SBI_IPI_EVENT_MAX];
|
static const struct sbi_ipi_event_ops *ipi_ops_array[SBI_IPI_EVENT_MAX];
|
||||||
|
Reference in New Issue
Block a user