diff options
author | Anup Patel <anup.patel@wdc.com> | 2020-01-03 07:09:10 +0300 |
---|---|---|
committer | Anup Patel <anup.patel@wdc.com> | 2020-01-07 09:41:02 +0300 |
commit | b325f6baefeafcee169e5f8a529882fdc0f47dc5 (patch) | |
tree | e721c583dd4451c3152152ca1be8b59761dc2c5a /include | |
parent | 6469ed101cb3c036cce1ead0d64160a7315f72af (diff) | |
download | opensbi-b325f6baefeafcee169e5f8a529882fdc0f47dc5.tar.xz |
lib: Add ipi exit API
We add sbi_ipi_exit() API for exit path handling in sbi_exit()
implementation.
Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/sbi/sbi_ipi.h | 2 | ||||
-rw-r--r-- | include/sbi/sbi_platform.h | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/sbi/sbi_ipi.h b/include/sbi/sbi_ipi.h index 109e9af..2dbc096 100644 --- a/include/sbi/sbi_ipi.h +++ b/include/sbi/sbi_ipi.h @@ -36,4 +36,6 @@ void sbi_ipi_process(struct sbi_scratch *scratch); int sbi_ipi_init(struct sbi_scratch *scratch, bool cold_boot); +void sbi_ipi_exit(struct sbi_scratch *scratch); + #endif diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index 02007af..21082fc 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -116,6 +116,8 @@ struct sbi_platform_operations { void (*ipi_clear)(u32 target_hart); /** Initialize IPI for current HART */ int (*ipi_init)(bool cold_boot); + /** Exit IPI for current HART */ + void (*ipi_exit)(void); /** Get platform timer value */ u64 (*timer_value)(void); @@ -500,6 +502,17 @@ static inline int sbi_platform_ipi_init(const struct sbi_platform *plat, } /** + * Exit the platform IPI support for current HART + * + * @param plat pointer to struct sbi_platform + */ +static inline void sbi_platform_ipi_exit(const struct sbi_platform *plat) +{ + if (plat && sbi_platform_ops(plat)->ipi_exit) + sbi_platform_ops(plat)->ipi_exit(); +} + +/** * Get platform timer value * * @param plat pointer to struct sbi_platform |