mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
vmstate-static-checker: Recognize "num" field
Recognize this field for VMS_ARRAY typed vmsd fields, then we can do proper size matching with previous patch. Note that this is compatible with old -dump-vmstate output, because when "num" is not there we'll still use the old "size" only. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
12c81e5ae9
commit
a67cceb071
1 changed files with 10 additions and 3 deletions
|
@ -134,6 +134,11 @@ def exists_in_substruct(fields, item):
|
|||
return check_fields_match(fields["Description"]["name"],
|
||||
substruct_fields[0]["field"], item)
|
||||
|
||||
def size_total(entry):
|
||||
size = entry["size"]
|
||||
if "num" not in entry:
|
||||
return size
|
||||
return size * entry["num"]
|
||||
|
||||
def check_fields(src_fields, dest_fields, desc, sec):
|
||||
# This function checks for all the fields in a section. If some
|
||||
|
@ -249,17 +254,19 @@ def check_fields(src_fields, dest_fields, desc, sec):
|
|||
continue
|
||||
|
||||
if s_item["field"] == "unused" or d_item["field"] == "unused":
|
||||
if s_item["size"] == d_item["size"]:
|
||||
s_size = size_total(s_item)
|
||||
d_size = size_total(d_item)
|
||||
if s_size == d_size:
|
||||
continue
|
||||
|
||||
if d_item["field"] == "unused":
|
||||
advance_dest = False
|
||||
unused_count = d_item["size"] - s_item["size"]
|
||||
unused_count = d_size - s_size;
|
||||
continue
|
||||
|
||||
if s_item["field"] == "unused":
|
||||
advance_src = False
|
||||
unused_count = s_item["size"] - d_item["size"]
|
||||
unused_count = s_size - d_size
|
||||
continue
|
||||
|
||||
print("Section \"" + sec + "\",", end=' ')
|
||||
|
|
Loading…
Reference in a new issue