diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/sbi/sbi_platform.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index 7b8fe89..c252628 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -45,7 +45,7 @@ #include <sbi/sbi_scratch.h> #include <sbi/sbi_version.h> -struct sbi_domain; +struct sbi_domain_memregion; struct sbi_trap_info; struct sbi_trap_regs; @@ -92,6 +92,8 @@ struct sbi_platform_operations { */ int (*misa_get_xlen)(void); + /** Get platform specific root domain memory regions */ + struct sbi_domain_memregion *(*domains_root_regions)(void); /** Initialize (or populate) domains for the platform */ int (*domains_init)(void); @@ -453,6 +455,22 @@ static inline int sbi_platform_misa_xlen(const struct sbi_platform *plat) } /** + * Get platform specific root domain memory regions + * + * @param plat pointer to struct sbi_platform + * + * @return an array of memory regions terminated by a region with order zero + * or NULL for no memory regions + */ +static inline struct sbi_domain_memregion * +sbi_platform_domains_root_regions(const struct sbi_platform *plat) +{ + if (plat && sbi_platform_ops(plat)->domains_root_regions) + return sbi_platform_ops(plat)->domains_root_regions(); + return NULL; +} + +/** * Initialize (or populate) domains for the platform * * @param plat pointer to struct sbi_platform |