mirror of https://github.com/xemu-project/xemu.git
migration: Rename vmstate_info_nullptr
Rename vmstate_info_nullptr from "uint64_t" to "nullptr". This vmstate actually reads and writes just a byte, so the proper name would be uint8. However, since this is a marker for a NULL pointer, it's convenient to have a more explicit name that can be identified by the consumers of the JSON part of the stream. Change the name to "nullptr" and add support for it in the analyze-migration.py script. Arbitrarily use the name of the type as the value of the field to avoid the script showing 0x30 or '0', which could be confusing for readers. Reviewed-by: Peter Xu <peterx@redhat.com> Message-Id: <20250109185249.23952-5-farosas@suse.de> Signed-off-by: Fabiano Rosas <farosas@suse.de> (cherry picked from commit f52965bf0eeee28e89933264f1a9dbdcdaa76a7e) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
e7a9d93428
commit
3ba6e1164a
|
@ -338,7 +338,7 @@ static int put_nullptr(QEMUFile *f, void *pv, size_t size,
|
|||
}
|
||||
|
||||
const VMStateInfo vmstate_info_nullptr = {
|
||||
.name = "uint64",
|
||||
.name = "nullptr",
|
||||
.get = get_nullptr,
|
||||
.put = put_nullptr,
|
||||
};
|
||||
|
|
|
@ -417,6 +417,28 @@ class VMSDFieldIntLE(VMSDFieldInt):
|
|||
super(VMSDFieldIntLE, self).__init__(desc, file)
|
||||
self.dtype = '<i%d' % self.size
|
||||
|
||||
class VMSDFieldNull(VMSDFieldGeneric):
|
||||
NULL_PTR_MARKER = b'0'
|
||||
|
||||
def __init__(self, desc, file):
|
||||
super(VMSDFieldNull, self).__init__(desc, file)
|
||||
|
||||
def __repr__(self):
|
||||
# A NULL pointer is encoded in the stream as a '0' to
|
||||
# disambiguate from a mere 0x0 value and avoid consumers
|
||||
# trying to follow the NULL pointer. Displaying '0', 0x30 or
|
||||
# 0x0 when analyzing the JSON debug stream could become
|
||||
# confusing, so use an explicit term instead.
|
||||
return "nullptr"
|
||||
|
||||
def __str__(self):
|
||||
return self.__repr__()
|
||||
|
||||
def read(self):
|
||||
super(VMSDFieldNull, self).read()
|
||||
assert(self.data == self.NULL_PTR_MARKER)
|
||||
return self.data
|
||||
|
||||
class VMSDFieldBool(VMSDFieldGeneric):
|
||||
def __init__(self, desc, file):
|
||||
super(VMSDFieldBool, self).__init__(desc, file)
|
||||
|
@ -558,6 +580,7 @@ vmsd_field_readers = {
|
|||
"bitmap" : VMSDFieldGeneric,
|
||||
"struct" : VMSDFieldStruct,
|
||||
"capability": VMSDFieldCap,
|
||||
"nullptr": VMSDFieldNull,
|
||||
"unknown" : VMSDFieldGeneric,
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue