mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 23:41:23 +01:00
lib: sbi_hsm: Export some functions
A coming patch can make use of a few internal hsm functions if we export them. Signed-off-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -69,9 +69,13 @@ void sbi_hsm_hart_resume_start(struct sbi_scratch *scratch);
|
|||||||
void sbi_hsm_hart_resume_finish(struct sbi_scratch *scratch);
|
void sbi_hsm_hart_resume_finish(struct sbi_scratch *scratch);
|
||||||
int sbi_hsm_hart_suspend(struct sbi_scratch *scratch, u32 suspend_type,
|
int sbi_hsm_hart_suspend(struct sbi_scratch *scratch, u32 suspend_type,
|
||||||
ulong raddr, ulong rmode, ulong arg1);
|
ulong raddr, ulong rmode, ulong arg1);
|
||||||
|
bool sbi_hsm_hart_change_state(struct sbi_scratch *scratch, long oldstate,
|
||||||
|
long newstate);
|
||||||
|
int __sbi_hsm_hart_get_state(u32 hartid);
|
||||||
int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid);
|
int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid);
|
||||||
int sbi_hsm_hart_interruptible_mask(const struct sbi_domain *dom,
|
int sbi_hsm_hart_interruptible_mask(const struct sbi_domain *dom,
|
||||||
ulong hbase, ulong *out_hmask);
|
ulong hbase, ulong *out_hmask);
|
||||||
|
void __sbi_hsm_suspend_non_ret_save(struct sbi_scratch *scratch);
|
||||||
void sbi_hsm_prepare_next_jump(struct sbi_scratch *scratch, u32 hartid);
|
void sbi_hsm_prepare_next_jump(struct sbi_scratch *scratch, u32 hartid);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -46,7 +46,15 @@ struct sbi_hsm_data {
|
|||||||
unsigned long saved_mip;
|
unsigned long saved_mip;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline int __sbi_hsm_hart_get_state(u32 hartid)
|
bool sbi_hsm_hart_change_state(struct sbi_scratch *scratch, long oldstate,
|
||||||
|
long newstate)
|
||||||
|
{
|
||||||
|
struct sbi_hsm_data *hdata = sbi_scratch_offset_ptr(scratch,
|
||||||
|
hart_data_offset);
|
||||||
|
return __sbi_hsm_hart_change_state(hdata, oldstate, newstate);
|
||||||
|
}
|
||||||
|
|
||||||
|
int __sbi_hsm_hart_get_state(u32 hartid)
|
||||||
{
|
{
|
||||||
struct sbi_hsm_data *hdata;
|
struct sbi_hsm_data *hdata;
|
||||||
struct sbi_scratch *scratch;
|
struct sbi_scratch *scratch;
|
||||||
@@ -328,7 +336,7 @@ static int __sbi_hsm_suspend_default(struct sbi_scratch *scratch)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __sbi_hsm_suspend_non_ret_save(struct sbi_scratch *scratch)
|
void __sbi_hsm_suspend_non_ret_save(struct sbi_scratch *scratch)
|
||||||
{
|
{
|
||||||
struct sbi_hsm_data *hdata = sbi_scratch_offset_ptr(scratch,
|
struct sbi_hsm_data *hdata = sbi_scratch_offset_ptr(scratch,
|
||||||
hart_data_offset);
|
hart_data_offset);
|
||||||
|
Reference in New Issue
Block a user