summaryrefslogtreecommitdiff
path: root/include/sbi_utils
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2020-12-13 08:53:05 +0300
committerAnup Patel <anup@brainfault.org>2020-12-16 07:40:19 +0300
commit2179777364cae3726c0e612f64b97a9bff05fc5b (patch)
tree993b3b05130c7ad8edce699930d781ae9bb104df /include/sbi_utils
parente7da0b4204c175f2fe936ff47acc93472e5b5b9a (diff)
downloadopensbi-2179777364cae3726c0e612f64b97a9bff05fc5b.tar.xz
lib: utils: Allow FDT domain iteration functions to fail
We extend fdt_iterate_each_domain() and fdt_iterate_each_memregion() functions to allow underlying iteration function to fail. This will help us catch more domain misconfiguration issues at boot time. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
Diffstat (limited to 'include/sbi_utils')
-rw-r--r--include/sbi_utils/fdt/fdt_domain.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/include/sbi_utils/fdt/fdt_domain.h b/include/sbi_utils/fdt/fdt_domain.h
index 3c02d56..68daacc 100644
--- a/include/sbi_utils/fdt/fdt_domain.h
+++ b/include/sbi_utils/fdt/fdt_domain.h
@@ -21,10 +21,12 @@ struct sbi_domain;
* @param fdt device tree blob
* @param opaque private pointer for each iteration
* @param fn callback function for each iteration
+ *
+ * @return 0 on success and negative error code on failure
*/
-void fdt_iterate_each_domain(void *fdt, void *opaque,
- void (*fn)(void *fdt, int domain_offset,
- void *opaque));
+int fdt_iterate_each_domain(void *fdt, void *opaque,
+ int (*fn)(void *fdt, int domain_offset,
+ void *opaque));
/**
* Iterate over each memregion of a domain in device tree
@@ -33,11 +35,13 @@ void fdt_iterate_each_domain(void *fdt, void *opaque,
* @param domain_offset domain DT node offset
* @param opaque private pointer for each iteration
* @param fn callback function for each iteration
+ *
+ * @return 0 on success and negative error code on failure
*/
-void fdt_iterate_each_memregion(void *fdt, int domain_offset, void *opaque,
- void (*fn)(void *fdt, int domain_offset,
- int region_offset, u32 region_access,
- void *opaque));
+int fdt_iterate_each_memregion(void *fdt, int domain_offset, void *opaque,
+ int (*fn)(void *fdt, int domain_offset,
+ int region_offset, u32 region_access,
+ void *opaque));
/**
* Fix up the domain configuration in the device tree