qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] New Migration Protocol using Visitor Interface


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [RFC] New Migration Protocol using Visitor Interface
Date: Mon, 3 Oct 2011 16:11:40 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Oct 03, 2011 at 08:43:54AM -0500, Anthony Liguori wrote:
> >>visit_start_array(v, "entries", errp);
> >>for (int i = 0; i<  s->size; i++) {
> >>     visit_type_int(v, NULL,&s->entry[i], errp);
> >>}
> >>visit_end_array(v, errp);
> >
> >Sequences can encode structures not just arrays.
> >How would you encode this for example:
> >
> >SEQUENCE OF { VQN: INTEGER, SEQUENCE { OPTIONAL VECTOR: INTEGER}  }
> 
> visit_start_array(v, "vqs", errp);
> for (i = 0; i < s->n_vqs; i++) {
>     // Array elements never have a name, hence NULL name
>     visit_start_struct(v, "VirtQueue", NULL, errp);
>     visit_type_int(v, &s->vq[i].num, "vqn", errp);
> 
>     // Given this sub-struct an arbitrary name.  It could also be anonymous.
>     visit_start_struct(v, "MsixInfo", "msix_info", errp);
>     if (s->vq[i].msix_enabled) {
>         visit_type_int(v, &s->vq[i].vector, "vector", errp);

Why is this a pointer to vector, btw?

>     }
>     visit_end_struct(v, errp);
> 
>     visit_end_struct(v, errp);
> }
> visit_end_array(v, errp);
> 
> This would also generate JSON of:
> 
> 'vqs': [ { 'vqn': 2, 'msix_info': { 'vector': 3 } } ]

How would optional fields be handled? Specifically
the case where first field in a sequence tells
you the meaning of the following ones?

-- 
MST



reply via email to

[Prev in Thread] Current Thread [Next in Thread]