[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 01/71] migration: Make VMStateDescription.subsections const
From: |
Richard Henderson |
Subject: |
[PATCH v2 01/71] migration: Make VMStateDescription.subsections const |
Date: |
Thu, 21 Dec 2023 14:15:42 +1100 |
Allow the array of pointers to itself be const.
Propagate this through the copies of this field.
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/migration/vmstate.h | 2 +-
migration/savevm.c | 12 ++++++------
migration/vmstate.c | 14 ++++++++------
3 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index 9821918631..294d2d8486 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -209,7 +209,7 @@ struct VMStateDescription {
bool (*dev_unplug_pending)(void *opaque);
const VMStateField *fields;
- const VMStateDescription **subsections;
+ const VMStateDescription * const *subsections;
};
extern const VMStateInfo vmstate_info_bool;
diff --git a/migration/savevm.c b/migration/savevm.c
index eec5503a42..39148636cc 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -551,11 +551,11 @@ static void dump_vmstate_vmsf(FILE *out_file, const
VMStateField *field,
}
static void dump_vmstate_vmss(FILE *out_file,
- const VMStateDescription **subsection,
+ const VMStateDescription *subsection,
int indent)
{
- if (*subsection != NULL) {
- dump_vmstate_vmsd(out_file, *subsection, indent, true);
+ if (subsection != NULL) {
+ dump_vmstate_vmsd(out_file, subsection, indent, true);
}
}
@@ -597,7 +597,7 @@ static void dump_vmstate_vmsd(FILE *out_file,
fprintf(out_file, "\n%*s]", indent, "");
}
if (vmsd->subsections != NULL) {
- const VMStateDescription **subsection = vmsd->subsections;
+ const VMStateDescription * const *subsection = vmsd->subsections;
bool first;
fprintf(out_file, ",\n%*s\"Subsections\": [\n", indent, "");
@@ -606,7 +606,7 @@ static void dump_vmstate_vmsd(FILE *out_file,
if (!first) {
fprintf(out_file, ",\n");
}
- dump_vmstate_vmss(out_file, subsection, indent + 2);
+ dump_vmstate_vmss(out_file, *subsection, indent + 2);
subsection++;
first = false;
}
@@ -831,7 +831,7 @@ void unregister_savevm(VMStateIf *obj, const char *idstr,
void *opaque)
static void vmstate_check(const VMStateDescription *vmsd)
{
const VMStateField *field = vmsd->fields;
- const VMStateDescription **subsection = vmsd->subsections;
+ const VMStateDescription * const *subsection = vmsd->subsections;
if (field) {
while (field->name) {
diff --git a/migration/vmstate.c b/migration/vmstate.c
index b7723a4187..ef26f26ccd 100644
--- a/migration/vmstate.c
+++ b/migration/vmstate.c
@@ -452,13 +452,15 @@ int vmstate_save_state_v(QEMUFile *f, const
VMStateDescription *vmsd,
}
static const VMStateDescription *
-vmstate_get_subsection(const VMStateDescription **sub, char *idstr)
+vmstate_get_subsection(const VMStateDescription * const *sub,
+ const char *idstr)
{
- while (sub && *sub) {
- if (strcmp(idstr, (*sub)->name) == 0) {
- return *sub;
+ if (sub) {
+ for (const VMStateDescription *s = *sub; s ; s = *++sub) {
+ if (strcmp(idstr, s->name) == 0) {
+ return s;
+ }
}
- sub++;
}
return NULL;
}
@@ -517,7 +519,7 @@ static int vmstate_subsection_load(QEMUFile *f, const
VMStateDescription *vmsd,
static int vmstate_subsection_save(QEMUFile *f, const VMStateDescription *vmsd,
void *opaque, JSONWriter *vmdesc)
{
- const VMStateDescription **sub = vmsd->subsections;
+ const VMStateDescription * const *sub = vmsd->subsections;
bool vmdesc_has_subsections = false;
int ret = 0;
--
2.34.1
- [PATCH v2 00/71] *: Constify VMState, Richard Henderson, 2023/12/20
- [PATCH v2 01/71] migration: Make VMStateDescription.subsections const,
Richard Henderson <=
- [PATCH v2 02/71] target/arm: Constify VMState in machine.c, Richard Henderson, 2023/12/20
- [PATCH v2 03/71] target/arm: Constify hvf/hvf.c, Richard Henderson, 2023/12/20
- [PATCH v2 04/71] target/alpha: Constify VMState in machine.c, Richard Henderson, 2023/12/20
- [PATCH v2 05/71] target/avr: Constify VMState in machine.c, Richard Henderson, 2023/12/20
- [PATCH v2 06/71] target/cris: Constify VMState in machine.c, Richard Henderson, 2023/12/20
- [PATCH v2 07/71] target/hppa: Constify VMState in machine.c, Richard Henderson, 2023/12/20
- [PATCH v2 08/71] target/i386: Constify VMState in machine.c, Richard Henderson, 2023/12/20
- [PATCH v2 09/71] target/loongarch: Constify VMState in machine.c, Richard Henderson, 2023/12/20