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
@ -134,6 +134,11 @@ def exists_in_substruct(fields, item):
|
|||||||
return check_fields_match(fields["Description"]["name"],
|
return check_fields_match(fields["Description"]["name"],
|
||||||
substruct_fields[0]["field"], item)
|
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):
|
def check_fields(src_fields, dest_fields, desc, sec):
|
||||||
# This function checks for all the fields in a section. If some
|
# 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
|
continue
|
||||||
|
|
||||||
if s_item["field"] == "unused" or d_item["field"] == "unused":
|
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
|
continue
|
||||||
|
|
||||||
if d_item["field"] == "unused":
|
if d_item["field"] == "unused":
|
||||||
advance_dest = False
|
advance_dest = False
|
||||||
unused_count = d_item["size"] - s_item["size"]
|
unused_count = d_size - s_size;
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if s_item["field"] == "unused":
|
if s_item["field"] == "unused":
|
||||||
advance_src = False
|
advance_src = False
|
||||||
unused_count = s_item["size"] - d_item["size"]
|
unused_count = s_size - d_size
|
||||||
continue
|
continue
|
||||||
|
|
||||||
print("Section \"" + sec + "\",", end=' ')
|
print("Section \"" + sec + "\",", end=' ')
|
||||||
|
Loading…
Reference in New Issue
Block a user