mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2026-08-18 01:21:49 +01:00
lib: sbi: Add domain parameter to hart protection (un)configure()
The switch_to_next_domain_context() already has the pointers to current and next domains so pass them as parameters to hart protection configure() and unconfigure() callbacks. Signed-off-by: Anup Patel <anup.patel@oss.qualcomm.com> Reviewed-by: Rahul Pathak <rahul.pathak@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260727042504.1743250-4-anup.patel@oss.qualcomm.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <sbi/sbi_list.h>
|
||||
|
||||
struct sbi_scratch;
|
||||
struct sbi_domain;
|
||||
|
||||
/** Representation of hart protection mechanism */
|
||||
struct sbi_hart_protection {
|
||||
@@ -24,10 +25,10 @@ struct sbi_hart_protection {
|
||||
unsigned long rating;
|
||||
|
||||
/** Configure protection for current HART (Mandatory) */
|
||||
int (*configure)(struct sbi_scratch *scratch);
|
||||
int (*configure)(struct sbi_scratch *scratch, struct sbi_domain *dom);
|
||||
|
||||
/** Unconfigure protection for current HART (Mandatory) */
|
||||
void (*unconfigure)(struct sbi_scratch *scratch);
|
||||
/** Unconfigure protection for current HART (Optional) */
|
||||
void (*unconfigure)(struct sbi_scratch *scratch, struct sbi_domain *dom);
|
||||
|
||||
/** Create temporary mapping to access address range on current HART (Optional) */
|
||||
int (*map_range)(struct sbi_scratch *scratch,
|
||||
@@ -65,24 +66,36 @@ void sbi_hart_protection_unregister(struct sbi_hart_protection *hprot);
|
||||
* Configure protection for current HART
|
||||
*
|
||||
* @param scratch pointer to scratch space of current HART
|
||||
* @param dom pointer to the domain for which HART protection
|
||||
* is being configured
|
||||
*
|
||||
* @return 0 on success and negative error code on failure
|
||||
*/
|
||||
int sbi_hart_protection_configure(struct sbi_scratch *scratch);
|
||||
int sbi_hart_protection_configure(struct sbi_scratch *scratch,
|
||||
struct sbi_domain *dom);
|
||||
|
||||
/**
|
||||
* Unconfigure protection for current HART
|
||||
*
|
||||
* @param scratch pointer to scratch space of current HART
|
||||
* @param dom pointer to the domain for which HART protection
|
||||
* is being unconfigured
|
||||
*/
|
||||
void sbi_hart_protection_unconfigure(struct sbi_scratch *scratch);
|
||||
void sbi_hart_protection_unconfigure(struct sbi_scratch *scratch,
|
||||
struct sbi_domain *dom);
|
||||
|
||||
/**
|
||||
* Re-configure protection for current HART
|
||||
*
|
||||
* @param scratch pointer to scratch space of current HART
|
||||
* @param current_dom pointer to the current domain for which
|
||||
* HART protection is being unconfigured
|
||||
* @param next_dom pointer to the next domain for which HART
|
||||
* protection is being configured
|
||||
*/
|
||||
int sbi_hart_protection_reconfigure(struct sbi_scratch *scratch);
|
||||
int sbi_hart_protection_reconfigure(struct sbi_scratch *scratch,
|
||||
struct sbi_domain *current_dom,
|
||||
struct sbi_domain *next_dom);
|
||||
|
||||
/**
|
||||
* Create temporary mapping to access address range on current HART
|
||||
|
||||
Reference in New Issue
Block a user