target/riscv: Make csr_ops[CSR_TABLE_SIZE] external
In preparation to generate the CSR register list for GDB stub dynamically, change csr_ops[] to non-static so that it can be referenced externally. Signed-off-by: Bin Meng <bin.meng@windriver.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 1610427124-49887-2-git-send-email-bmeng.cn@gmail.com Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
29b5fe0dcd
commit
56118ee88d
|
@ -478,6 +478,14 @@ typedef struct {
|
||||||
riscv_csr_op_fn op;
|
riscv_csr_op_fn op;
|
||||||
} riscv_csr_operations;
|
} riscv_csr_operations;
|
||||||
|
|
||||||
|
/* CSR function table constants */
|
||||||
|
enum {
|
||||||
|
CSR_TABLE_SIZE = 0x1000
|
||||||
|
};
|
||||||
|
|
||||||
|
/* CSR function table */
|
||||||
|
extern riscv_csr_operations csr_ops[];
|
||||||
|
|
||||||
void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops);
|
void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops);
|
||||||
void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops);
|
void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops);
|
||||||
|
|
||||||
|
|
|
@ -23,14 +23,6 @@
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
|
||||||
/* CSR function table */
|
|
||||||
static riscv_csr_operations csr_ops[];
|
|
||||||
|
|
||||||
/* CSR function table constants */
|
|
||||||
enum {
|
|
||||||
CSR_TABLE_SIZE = 0x1000
|
|
||||||
};
|
|
||||||
|
|
||||||
/* CSR function table public API */
|
/* CSR function table public API */
|
||||||
void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops)
|
void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops)
|
||||||
{
|
{
|
||||||
|
@ -1378,7 +1370,7 @@ int riscv_csrrw_debug(CPURISCVState *env, int csrno, target_ulong *ret_value,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Control and Status Register function table */
|
/* Control and Status Register function table */
|
||||||
static riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = {
|
riscv_csr_operations csr_ops[CSR_TABLE_SIZE] = {
|
||||||
/* User Floating-Point CSRs */
|
/* User Floating-Point CSRs */
|
||||||
[CSR_FFLAGS] = { fs, read_fflags, write_fflags },
|
[CSR_FFLAGS] = { fs, read_fflags, write_fflags },
|
||||||
[CSR_FRM] = { fs, read_frm, write_frm },
|
[CSR_FRM] = { fs, read_frm, write_frm },
|
||||||
|
|
Loading…
Reference in a new issue