u32 hartid, ulong saddr, ulong smode, ulong priv);
int sbi_hsm_hart_stop(struct sbi_scratch *scratch, bool exitnow);
int sbi_hsm_hart_get_state(const struct sbi_domain *dom, u32 hartid);
-int sbi_hsm_hart_started_mask(const struct sbi_domain *dom,
- ulong hbase, ulong *out_hmask);
+int sbi_hsm_hart_interruptible_mask(const struct sbi_domain *dom,
+ ulong hbase, ulong *out_hmask);
void sbi_hsm_prepare_next_jump(struct sbi_scratch *scratch, u32 hartid);
#endif
if (uptrap->cause)
return SBI_ETRAP;
} else {
- sbi_hsm_hart_started_mask(sbi_domain_thishart_ptr(),
- 0, &mask);
+ sbi_hsm_hart_interruptible_mask(sbi_domain_thishart_ptr(),
+ 0, &mask);
}
*hmask = mask;
* @return 0 on success and SBI_Exxx (< 0) on failure
* Note: the output HART mask will be set to zero on failure as well.
*/
-int sbi_hsm_hart_started_mask(const struct sbi_domain *dom,
- ulong hbase, ulong *out_hmask)
+int sbi_hsm_hart_interruptible_mask(const struct sbi_domain *dom,
+ ulong hbase, ulong *out_hmask)
{
ulong i, hmask, dmask;
ulong hend = sbi_scratch_last_hartid() + 1;
struct sbi_scratch *scratch = sbi_scratch_thishart_ptr();
if (hbase != -1UL) {
- rc = sbi_hsm_hart_started_mask(dom, hbase, &m);
+ rc = sbi_hsm_hart_interruptible_mask(dom, hbase, &m);
if (rc)
return rc;
m &= hmask;
}
} else {
hbase = 0;
- while (!sbi_hsm_hart_started_mask(dom, hbase, &m)) {
+ while (!sbi_hsm_hart_interruptible_mask(dom, hbase, &m)) {
/* Send IPIs */
for (i = hbase; m; i++, m >>= 1) {
if (m & 1UL)
struct sbi_scratch *scratch = sbi_scratch_thishart_ptr();
/* Send HALT IPI to every hart other than the current hart */
- while (!sbi_hsm_hart_started_mask(dom, hbase, &hmask)) {
+ while (!sbi_hsm_hart_interruptible_mask(dom, hbase, &hmask)) {
if (hbase <= cur_hartid)
hmask &= ~(1UL << (cur_hartid - hbase));
if (hmask)