On 10/07/2016 07:34 AM, Dr. David Alan Gilbert wrote: > * Paolo Bonzini (pbonz...@redhat.com) wrote: >> >> >> On 06/10/2016 21:01, Dr. David Alan Gilbert wrote: >>>>>> + } else if (field->flags & VMS_LINKED) { >>>>>> + ret = field->info->get(f, addr, size, field); >>>>>> } else { >>>>>> ret = field->info->get(f, addr, size, NULL); >>>>>> >>>>>> @@ -193,6 +197,8 @@ static const char >>>>>> *vmfield_get_type_name(VMStateField *field) >>>>>> >>>>>> if (field->flags & VMS_STRUCT) { >>>>>> type = "struct"; >>>>>> + } else if (field->flags & VMS_LINKED) { >>>>>> + type = "linked"; >>>>>> } else if (field->info->name) { >>>>>> type = field->info->name; >>>>>> } >>>>>> @@ -327,6 +333,8 @@ void vmstate_save_state(QEMUFile *f, const >>>>>> VMStateDescription *vmsd, >>>>>> } >>>>>> if (field->flags & VMS_STRUCT) { >>>>>> vmstate_save_state(f, field->vmsd, addr, >>>>>> vmdesc_loop); >>>>>> + } else if (field->flags & VMS_LINKED) { >>>>>> + field->info->put(f, addr, size, field, vmdesc_loop); >>>>>> } else { >>>>>> field->info->put(f, addr, size, NULL, NULL); >>>>>> } >> >> Is VMS_LINKED needed at all, since the fields are unused for every >> VMStateInfo except qtailq? > > No, I think you could easily drop the VMS_LINKED and just always pass them in.
It is needed if we want to use vmdesc_loop. Thanks, Jianjun > Dave > >> Paolo > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK >