summaryrefslogtreecommitdiff
path: root/lib/sbi
diff options
context:
space:
mode:
authorSamuel Holland <[email protected]>2024-11-11 14:02:45 -0800
committerAnup Patel <[email protected]>2024-11-28 17:09:17 +0530
commitdf1c1000014049d95d65de831f9015a2dcf9fa34 (patch)
tree09ada6ab220ee86c1169a85777c32f2f2a6a1c47 /lib/sbi
parent23ef9c5f00b81cffbbf7ff6894f241fad07ee4b7 (diff)
treewide: Make carray arrays const and NULL-terminated
This allows the compiler to generate significantly better code, because it does not have to maintain either the loop counter or loop limit. Plus there are half as many symbols to relocate. This also simplifies passing carray arrays to helper functions. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Anup Patel <[email protected]>
Diffstat (limited to 'lib/sbi')
-rw-r--r--lib/sbi/sbi_ecall.c5
-rw-r--r--lib/sbi/tests/sbi_unit_test.c5
2 files changed, 4 insertions, 6 deletions
diff --git a/lib/sbi/sbi_ecall.c b/lib/sbi/sbi_ecall.c
index d4fc58c5..be0b67e1 100644
--- a/lib/sbi/sbi_ecall.c
+++ b/lib/sbi/sbi_ecall.c
@@ -13,8 +13,7 @@
#include <sbi/sbi_error.h>
#include <sbi/sbi_trap.h>
-extern struct sbi_ecall_extension *sbi_ecall_exts[];
-extern unsigned long sbi_ecall_exts_size;
+extern struct sbi_ecall_extension *const sbi_ecall_exts[];
u16 sbi_ecall_version_major(void)
{
@@ -148,7 +147,7 @@ int sbi_ecall_init(void)
struct sbi_ecall_extension *ext;
unsigned long i;
- for (i = 0; i < sbi_ecall_exts_size; i++) {
+ for (i = 0; sbi_ecall_exts[i]; i++) {
ext = sbi_ecall_exts[i];
ret = SBI_ENODEV;
diff --git a/lib/sbi/tests/sbi_unit_test.c b/lib/sbi/tests/sbi_unit_test.c
index cd091663..d5e81568 100644
--- a/lib/sbi/tests/sbi_unit_test.c
+++ b/lib/sbi/tests/sbi_unit_test.c
@@ -11,8 +11,7 @@
#define ANSI_COLOR_RED "\x1b[31m"
#define ANSI_COLOR_RESET "\x1b[0m"
-extern struct sbiunit_test_suite *sbi_unit_tests[];
-extern unsigned long sbi_unit_tests_size;
+extern struct sbiunit_test_suite *const sbi_unit_tests[];
static void run_test_suite(struct sbiunit_test_suite *suite)
{
@@ -48,6 +47,6 @@ void run_all_tests(void)
sbi_printf("\n# Running SBIUNIT tests #\n");
- for (i = 0; i < sbi_unit_tests_size; i++)
+ for (i = 0; sbi_unit_tests[i]; i++)
run_test_suite(sbi_unit_tests[i]);
}