summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sbi/sbi_ecall.c5
-rw-r--r--lib/sbi/tests/sbi_unit_test.c5
-rw-r--r--lib/utils/gpio/fdt_gpio.c5
-rw-r--r--lib/utils/i2c/fdt_i2c.c5
-rw-r--r--lib/utils/ipi/fdt_ipi.c5
-rw-r--r--lib/utils/irqchip/fdt_irqchip.c5
-rw-r--r--lib/utils/regmap/fdt_regmap.c5
-rw-r--r--lib/utils/reset/fdt_reset.c5
-rw-r--r--lib/utils/serial/fdt_serial.c7
-rw-r--r--lib/utils/timer/fdt_timer.c5
-rw-r--r--platform/generic/platform.c5
-rwxr-xr-xscripts/carray.sh7
12 files changed, 26 insertions, 38 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]);
}
diff --git a/lib/utils/gpio/fdt_gpio.c b/lib/utils/gpio/fdt_gpio.c
index 953fa13a..eac2b863 100644
--- a/lib/utils/gpio/fdt_gpio.c
+++ b/lib/utils/gpio/fdt_gpio.c
@@ -13,8 +13,7 @@
#include <sbi_utils/gpio/fdt_gpio.h>
/* List of FDT gpio drivers generated at compile time */
-extern struct fdt_gpio *fdt_gpio_drivers[];
-extern unsigned long fdt_gpio_drivers_size;
+extern struct fdt_gpio *const fdt_gpio_drivers[];
static int fdt_gpio_init(const void *fdt, int nodeoff)
{
@@ -27,7 +26,7 @@ static int fdt_gpio_init(const void *fdt, int nodeoff)
return SBI_EINVAL;
/* Try all GPIO drivers one-by-one */
- for (pos = 0; pos < fdt_gpio_drivers_size; pos++) {
+ for (pos = 0; fdt_gpio_drivers[pos]; pos++) {
drv = fdt_gpio_drivers[pos];
match = fdt_match_node(fdt, nodeoff, drv->match_table);
diff --git a/lib/utils/i2c/fdt_i2c.c b/lib/utils/i2c/fdt_i2c.c
index d23b40db..56891a0a 100644
--- a/lib/utils/i2c/fdt_i2c.c
+++ b/lib/utils/i2c/fdt_i2c.c
@@ -17,8 +17,7 @@
#include <sbi_utils/i2c/fdt_i2c.h>
/* List of FDT i2c adapter drivers generated at compile time */
-extern struct fdt_i2c_adapter *fdt_i2c_adapter_drivers[];
-extern unsigned long fdt_i2c_adapter_drivers_size;
+extern struct fdt_i2c_adapter *const fdt_i2c_adapter_drivers[];
static int fdt_i2c_adapter_init(const void *fdt, int nodeoff)
{
@@ -27,7 +26,7 @@ static int fdt_i2c_adapter_init(const void *fdt, int nodeoff)
const struct fdt_match *match;
/* Try all I2C drivers one-by-one */
- for (pos = 0; pos < fdt_i2c_adapter_drivers_size; pos++) {
+ for (pos = 0; fdt_i2c_adapter_drivers[pos]; pos++) {
drv = fdt_i2c_adapter_drivers[pos];
match = fdt_match_node(fdt, nodeoff, drv->match_table);
if (match && drv->init) {
diff --git a/lib/utils/ipi/fdt_ipi.c b/lib/utils/ipi/fdt_ipi.c
index c2ff9cfa..6c2feafb 100644
--- a/lib/utils/ipi/fdt_ipi.c
+++ b/lib/utils/ipi/fdt_ipi.c
@@ -13,8 +13,7 @@
#include <sbi_utils/ipi/fdt_ipi.h>
/* List of FDT ipi drivers generated at compile time */
-extern struct fdt_ipi *fdt_ipi_drivers[];
-extern unsigned long fdt_ipi_drivers_size;
+extern struct fdt_ipi *const fdt_ipi_drivers[];
int fdt_ipi_init(void)
{
@@ -23,7 +22,7 @@ int fdt_ipi_init(void)
const struct fdt_match *match;
const void *fdt = fdt_get_address();
- for (pos = 0; pos < fdt_ipi_drivers_size; pos++) {
+ for (pos = 0; fdt_ipi_drivers[pos]; pos++) {
drv = fdt_ipi_drivers[pos];
noff = -1;
diff --git a/lib/utils/irqchip/fdt_irqchip.c b/lib/utils/irqchip/fdt_irqchip.c
index 2819540a..6ed7711b 100644
--- a/lib/utils/irqchip/fdt_irqchip.c
+++ b/lib/utils/irqchip/fdt_irqchip.c
@@ -13,8 +13,7 @@
#include <sbi_utils/irqchip/fdt_irqchip.h>
/* List of FDT irqchip drivers generated at compile time */
-extern struct fdt_irqchip *fdt_irqchip_drivers[];
-extern unsigned long fdt_irqchip_drivers_size;
+extern struct fdt_irqchip *const fdt_irqchip_drivers[];
int fdt_irqchip_init(void)
{
@@ -23,7 +22,7 @@ int fdt_irqchip_init(void)
const struct fdt_match *match;
const void *fdt = fdt_get_address();
- for (pos = 0; pos < fdt_irqchip_drivers_size; pos++) {
+ for (pos = 0; fdt_irqchip_drivers[pos]; pos++) {
drv = fdt_irqchip_drivers[pos];
noff = -1;
diff --git a/lib/utils/regmap/fdt_regmap.c b/lib/utils/regmap/fdt_regmap.c
index 933938fb..ab991c45 100644
--- a/lib/utils/regmap/fdt_regmap.c
+++ b/lib/utils/regmap/fdt_regmap.c
@@ -13,8 +13,7 @@
#include <sbi_utils/regmap/fdt_regmap.h>
/* List of FDT regmap drivers generated at compile time */
-extern struct fdt_regmap *fdt_regmap_drivers[];
-extern unsigned long fdt_regmap_drivers_size;
+extern struct fdt_regmap *const fdt_regmap_drivers[];
static int fdt_regmap_init(const void *fdt, int nodeoff)
{
@@ -23,7 +22,7 @@ static int fdt_regmap_init(const void *fdt, int nodeoff)
const struct fdt_match *match;
/* Try all I2C drivers one-by-one */
- for (pos = 0; pos < fdt_regmap_drivers_size; pos++) {
+ for (pos = 0; fdt_regmap_drivers[pos]; pos++) {
drv = fdt_regmap_drivers[pos];
match = fdt_match_node(fdt, nodeoff, drv->match_table);
if (match && drv->init) {
diff --git a/lib/utils/reset/fdt_reset.c b/lib/utils/reset/fdt_reset.c
index 05deb75e..4b20c3e3 100644
--- a/lib/utils/reset/fdt_reset.c
+++ b/lib/utils/reset/fdt_reset.c
@@ -14,8 +14,7 @@
#include <sbi_utils/reset/fdt_reset.h>
/* List of FDT reset drivers generated at compile time */
-extern struct fdt_reset *fdt_reset_drivers[];
-extern unsigned long fdt_reset_drivers_size;
+extern struct fdt_reset *const fdt_reset_drivers[];
int fdt_reset_driver_init(const void *fdt, struct fdt_reset *drv)
{
@@ -46,6 +45,6 @@ void fdt_reset_init(const void *fdt)
{
int pos;
- for (pos = 0; pos < fdt_reset_drivers_size; pos++)
+ for (pos = 0; fdt_reset_drivers[pos]; pos++)
fdt_reset_driver_init(fdt, fdt_reset_drivers[pos]);
}
diff --git a/lib/utils/serial/fdt_serial.c b/lib/utils/serial/fdt_serial.c
index a2a96cb2..a7129bdd 100644
--- a/lib/utils/serial/fdt_serial.c
+++ b/lib/utils/serial/fdt_serial.c
@@ -14,8 +14,7 @@
#include <sbi_utils/serial/fdt_serial.h>
/* List of FDT serial drivers generated at compile time */
-extern struct fdt_serial *fdt_serial_drivers[];
-extern unsigned long fdt_serial_drivers_size;
+extern struct fdt_serial *const fdt_serial_drivers[];
int fdt_serial_init(const void *fdt)
{
@@ -46,7 +45,7 @@ int fdt_serial_init(const void *fdt)
}
/* First check DT node pointed by stdout-path */
- for (pos = 0; pos < fdt_serial_drivers_size && -1 < noff; pos++) {
+ for (pos = 0; fdt_serial_drivers[pos] && -1 < noff; pos++) {
drv = fdt_serial_drivers[pos];
match = fdt_match_node(fdt, noff, drv->match_table);
@@ -64,7 +63,7 @@ int fdt_serial_init(const void *fdt)
}
/* Lastly check all DT nodes */
- for (pos = 0; pos < fdt_serial_drivers_size; pos++) {
+ for (pos = 0; fdt_serial_drivers[pos]; pos++) {
drv = fdt_serial_drivers[pos];
noff = -1;
diff --git a/lib/utils/timer/fdt_timer.c b/lib/utils/timer/fdt_timer.c
index 37965f5e..a2412409 100644
--- a/lib/utils/timer/fdt_timer.c
+++ b/lib/utils/timer/fdt_timer.c
@@ -13,8 +13,7 @@
#include <sbi_utils/timer/fdt_timer.h>
/* List of FDT timer drivers generated at compile time */
-extern struct fdt_timer *fdt_timer_drivers[];
-extern unsigned long fdt_timer_drivers_size;
+extern struct fdt_timer *const fdt_timer_drivers[];
int fdt_timer_init(void)
{
@@ -23,7 +22,7 @@ int fdt_timer_init(void)
const struct fdt_match *match;
const void *fdt = fdt_get_address();
- for (pos = 0; pos < fdt_timer_drivers_size; pos++) {
+ for (pos = 0; fdt_timer_drivers[pos]; pos++) {
drv = fdt_timer_drivers[pos];
noff = -1;
diff --git a/platform/generic/platform.c b/platform/generic/platform.c
index 768b9b68..fb074d4b 100644
--- a/platform/generic/platform.c
+++ b/platform/generic/platform.c
@@ -30,8 +30,7 @@
#include <sbi_utils/serial/semihosting.h>
/* List of platform override modules generated at compile time */
-extern const struct platform_override *platform_override_modules[];
-extern unsigned long platform_override_modules_size;
+extern const struct platform_override *const platform_override_modules[];
static const struct platform_override *generic_plat = NULL;
static const struct fdt_match *generic_plat_match = NULL;
@@ -42,7 +41,7 @@ static void fw_platform_lookup_special(const void *fdt, int root_offset)
const struct fdt_match *match;
int pos;
- for (pos = 0; pos < platform_override_modules_size; pos++) {
+ for (pos = 0; platform_override_modules[pos]; pos++) {
plat = platform_override_modules[pos];
if (!plat->match_table)
continue;
diff --git a/scripts/carray.sh b/scripts/carray.sh
index 1fa2366a..72808697 100755
--- a/scripts/carray.sh
+++ b/scripts/carray.sh
@@ -69,10 +69,9 @@ for VAR in ${VAR_LIST}; do
done
printf "\n"
-printf "%s *%s[] = {\n" "${TYPE_NAME}" "${ARRAY_NAME}"
+printf "%s *const %s[] = {\n" "${TYPE_NAME}" "${ARRAY_NAME}"
for VAR in ${VAR_LIST}; do
printf "\t&%s,\n" "${VAR}"
done
-printf "};\n\n"
-
-printf "unsigned long %s_size = sizeof(%s) / sizeof(%s *);\n" "${ARRAY_NAME}" "${ARRAY_NAME}" "${TYPE_NAME}"
+ printf "\tNULL\n"
+printf "};\n"