Message ID | 20250217081730.9000-5-yongxuan.wang@sifive.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | riscv: AIA: kernel-irqchip=off support | expand |
On Mon, Feb 17, 2025 at 04:17:24PM +0800, Yong-Xuan Wang wrote: > Add a helper function to get CSR name from CSR number. > > Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com> > --- > target/riscv/cpu.h | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h > index 616c3bdc1c24..133d1852ee1e 100644 > --- a/target/riscv/cpu.h > +++ b/target/riscv/cpu.h > @@ -920,8 +920,12 @@ extern const bool valid_vm_1_10_32[], valid_vm_1_10_64[]; > void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops); > void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops); > > -void riscv_cpu_register_gdb_regs_for_features(CPUState *cs); > +static inline const char *riscv_get_csr_name(int csr_no) > +{ > + return csr_ops[csr_no & (CSR_TABLE_SIZE - 1)].name; Shouldn't we assert csr_no is correct rather than silently truncate it? Thanks, drew > +} > > +void riscv_cpu_register_gdb_regs_for_features(CPUState *cs); > target_ulong riscv_new_csr_seed(target_ulong new_value, > target_ulong write_mask); > > -- > 2.17.1 > >
Hi Andrew, On Mon, Feb 17, 2025 at 10:01 PM Andrew Jones <ajones@ventanamicro.com> wrote: > > On Mon, Feb 17, 2025 at 04:17:24PM +0800, Yong-Xuan Wang wrote: > > Add a helper function to get CSR name from CSR number. > > > > Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com> > > --- > > target/riscv/cpu.h | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h > > index 616c3bdc1c24..133d1852ee1e 100644 > > --- a/target/riscv/cpu.h > > +++ b/target/riscv/cpu.h > > @@ -920,8 +920,12 @@ extern const bool valid_vm_1_10_32[], valid_vm_1_10_64[]; > > void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops); > > void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops); > > > > -void riscv_cpu_register_gdb_regs_for_features(CPUState *cs); > > +static inline const char *riscv_get_csr_name(int csr_no) > > +{ > > + return csr_ops[csr_no & (CSR_TABLE_SIZE - 1)].name; > > Shouldn't we assert csr_no is correct rather than silently > truncate it? ok. I would add some assertions in this function. Regards, Yong-Xuan > > Thanks, > drew > > > +} > > > > +void riscv_cpu_register_gdb_regs_for_features(CPUState *cs); > > target_ulong riscv_new_csr_seed(target_ulong new_value, > > target_ulong write_mask); > > > > -- > > 2.17.1 > > > >
diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 616c3bdc1c24..133d1852ee1e 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -920,8 +920,12 @@ extern const bool valid_vm_1_10_32[], valid_vm_1_10_64[]; void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops); void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops); -void riscv_cpu_register_gdb_regs_for_features(CPUState *cs); +static inline const char *riscv_get_csr_name(int csr_no) +{ + return csr_ops[csr_no & (CSR_TABLE_SIZE - 1)].name; +} +void riscv_cpu_register_gdb_regs_for_features(CPUState *cs); target_ulong riscv_new_csr_seed(target_ulong new_value, target_ulong write_mask);
Add a helper function to get CSR name from CSR number. Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com> --- target/riscv/cpu.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)