From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41436) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAR1V-000592-6z for qemu-devel@nongnu.org; Wed, 21 Mar 2012 15:16:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SAR1Q-00063N-DZ for qemu-devel@nongnu.org; Wed, 21 Mar 2012 15:16:40 -0400 Received: from mail-bk0-f45.google.com ([209.85.214.45]:63614) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAR1Q-00062v-3e for qemu-devel@nongnu.org; Wed, 21 Mar 2012 15:16:36 -0400 Received: by bkcjg9 with SMTP id jg9so1462253bkc.4 for ; Wed, 21 Mar 2012 12:16:33 -0700 (PDT) Message-ID: <4F6A371F.7020108@gmail.com> Date: Wed, 21 Mar 2012 23:16:31 +0300 From: Igor Mitsyanko MIME-Version: 1.0 References: <151cfef4f7da885965089931c444ce912c2d6261.1332197811.git.quintela@redhat.com> In-Reply-To: <151cfef4f7da885965089931c444ce912c2d6261.1332197811.git.quintela@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 12/36] vmstate: Introduce VMSTATE_STRUCT_VARRAY_INT32_TEST Reply-To: i.mitsyanko@samsung.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Juan Quintela Cc: qemu-devel@nongnu.org, d.solodkiy@samsung.com On 20.03.2012 1:57 AM, Juan Quintela wrote: > We have an array of structs whose size is an int32 in the same struct that > depends on a test value to know if it is there or not. > > Signed-off-by: Juan Quintela > --- > vmstate.h | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > > diff --git a/vmstate.h b/vmstate.h > index 5c56f25..b8ac2d0 100644 > --- a/vmstate.h > +++ b/vmstate.h > @@ -309,6 +309,16 @@ extern const VMStateDescription vmstate_cpu; > .offset = offsetof(_state, _field), \ > } > > +#define VMSTATE_STRUCT_VARRAY_INT32_TEST(_field, _state, _field_num, _test, _vmsd, _type) { \ > + .name = (stringify(_field)), \ > + .num_offset = vmstate_offset_value(_state, _field_num, int32_t), \ > + .vmsd =&(_vmsd), \ > + .field_exists = (_test), \ > + .size = sizeof(_type), \ > + .flags = VMS_STRUCT|VMS_VARRAY_INT32, \ > + .offset = offsetof(_state, _field), \ > +} > + > #define VMSTATE_STRUCT_VARRAY_POINTER_INT32(_field, _state, _field_num, _vmsd, _type) { \ > .name = (stringify(_field)), \ > .version_id = 0, \ We already have VMSTATE_STRUCT_VARRAY_INT32, maybe for consistency with other macro in vmstate.h this should look like this: #define VMSTATE_STRUCT_VARRAY_INT32_TEST_V(_field, _state, _field_num, _version, _test, _vmsd, _type) { .name = (stringify(_field)), .num_offset = vmstate_offset_value(_state, _field_num, int32_t), .version_id = (_version), .vmsd =&(_vmsd), .field_exists = (_test), .size = sizeof(_type), .flags = VMS_STRUCT|VMS_VARRAY_INT32, .offset = offsetof(_state, _field), } #define VMSTATE_STRUCT_VARRAY_INT32_TEST(_field, _state, _field_num, _test, _vmsd, _type) \ VMSTATE_STRUCT_VARRAY_INT32_TEST_V(_field, _state, _field_num, 0, _test, _vmsd, _type) { #define VMSTATE_STRUCT_VARRAY_INT32(_field, _state, _field_num, _vmsd, _type) \ VMSTATE_STRUCT_VARRAY_INT32_TEST_V(_field, _state, _field_num, 0, NULL, _vmsd, _type) {