lib: utils/irqchip: Look up IMSIC data by hart index

This avoids needing to map a hartid to a hart index.

Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
Samuel Holland
2024-08-30 08:49:09 -07:00
committed by Anup Patel
parent d73a4c741c
commit 7f5fa9f9a4
2 changed files with 7 additions and 7 deletions

View File

@@ -37,9 +37,9 @@ struct imsic_data {
int imsic_map_hartid_to_data(u32 hartid, struct imsic_data *imsic, int file);
struct imsic_data *imsic_get_data(u32 hartid);
struct imsic_data *imsic_get_data(u32 hartindex);
int imsic_get_target_file(u32 hartid);
int imsic_get_target_file(u32 hartindex);
void imsic_local_irqchip_init(void);

View File

@@ -119,28 +119,28 @@ int imsic_map_hartid_to_data(u32 hartid, struct imsic_data *imsic, int file)
return 0;
}
struct imsic_data *imsic_get_data(u32 hartid)
struct imsic_data *imsic_get_data(u32 hartindex)
{
struct sbi_scratch *scratch;
if (!imsic_ptr_offset)
return NULL;
scratch = sbi_hartid_to_scratch(hartid);
scratch = sbi_hartindex_to_scratch(hartindex);
if (!scratch)
return NULL;
return imsic_get_hart_data_ptr(scratch);
}
int imsic_get_target_file(u32 hartid)
int imsic_get_target_file(u32 hartindex)
{
struct sbi_scratch *scratch;
if (!imsic_file_offset)
return SBI_ENOENT;
scratch = sbi_hartid_to_scratch(hartid);
scratch = sbi_hartindex_to_scratch(hartindex);
if (!scratch)
return SBI_ENOENT;
@@ -257,7 +257,7 @@ void imsic_local_irqchip_init(void)
int imsic_warm_irqchip_init(void)
{
struct imsic_data *imsic = imsic_get_data(current_hartid());
struct imsic_data *imsic = imsic_get_data(current_hartindex());
/* Sanity checks */
if (!imsic || !imsic->targets_mmode)