@samitouri / QOSamiQemu / commits / 9d1a6d194e

target/loongarch: Add default CSRFL_BASIC info with flags field

With CSR array structure, its validity is checked from offset field. Now default CSRFL_BASIC information is added with flags field and its validility can be checked with flags field. Signed-off-by: Bibo Mao <maobibo@loongson.cn> Tested-by: Song Gao <gaosong@loongson.cn> Message-ID: <20260605083854.175625-1-maobibo@loongson.cn> Signed-off-by: Song Gao <gaosong@loongson.cn>

Bibo Mao committed Jun 5, 2026 at 16:38 UTC 9d1a6d194ee9e589406df8a54c48b1f3fbd279fa
2 files changed +4 -3
target/loongarch/csr.c
+3 -3
@@ -17,11 +17,11 @@
17 [LOONGARCH_CSR_##NAME(N)] = { \
18 .name = (stringify(NAME##N)), \
19 .offset = offsetof(CPULoongArchState, CSR_##NAME[N]), \
20 - .flags = 0, .readfn = NULL, .writefn = NULL \
20 + .flags = CSRFL_BASIC, .readfn = NULL, .writefn = NULL \
21 }
22
23 #define CSR_OFF_FLAGS(NAME, FL) CSR_OFF_FUNCS(NAME, FL, NULL, NULL)
24 -#define CSR_OFF(NAME) CSR_OFF_FLAGS(NAME, 0)
24 +#define CSR_OFF(NAME) CSR_OFF_FLAGS(NAME, CSRFL_BASIC)
25
26 static CSRInfo csr_info[] = {
27 CSR_OFF_FLAGS(CRMD, CSRFL_EXITTB),
@@ -144,7 +144,7 @@ CSRInfo *get_csr(unsigned int csr_num)
144 }
145
146 csr = &csr_info[csr_num];
147 - if (csr->offset == 0) {
147 + if (csr->flags == 0) {
148 return NULL;
149 }
150
target/loongarch/csr.h
+1
@@ -14,6 +14,7 @@ enum {
14 CSRFL_EXITTB = (1 << 1),
15 CSRFL_IO = (1 << 2),
16 CSRFL_UNUSED = (1 << 3),
17 + CSRFL_BASIC = (1 << 4),
18 };
19
20 typedef struct {