From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58483) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SA0rB-0006En-9A for qemu-devel@nongnu.org; Tue, 20 Mar 2012 11:20:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SA0r4-0001Av-W8 for qemu-devel@nongnu.org; Tue, 20 Mar 2012 11:20:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:24373) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SA0r4-0001Am-N8 for qemu-devel@nongnu.org; Tue, 20 Mar 2012 11:20:10 -0400 From: Juan Quintela In-Reply-To: (Peter Maydell's message of "Tue, 20 Mar 2012 14:11:49 +0000") References: <14f530e2802146eb78e690eef5a868394bfdf66a.1332197811.git.quintela@redhat.com> Date: Tue, 20 Mar 2012 16:20:06 +0100 Message-ID: <87aa3buwnt.fsf@elfo.elfo> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 09/36] vmstate: introduce float32 arrays Reply-To: quintela@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: qemu-devel@nongnu.org Peter Maydell wrote: > On 19 March 2012 22:57, Juan Quintela wrote: >> +/* 32 bit float */ >> + >> +typedef union { >> + =C2=A0 =C2=A0float32 f; >> + =C2=A0 =C2=A0uint32_t i; >> +} VMStateFloat32; >> + >> +static int get_float32(QEMUFile *f, void *pv, size_t size) >> +{ >> + =C2=A0 =C2=A0float32 *v =3D pv; >> + =C2=A0 =C2=A0VMStateFloat32 u; >> + =C2=A0 =C2=A0qemu_get_be32s(f, &u.i); >> + =C2=A0 =C2=A0*v =3D u.f; >> + =C2=A0 =C2=A0return 0; >> +} >> + >> +static void put_float32(QEMUFile *f, void *pv, size_t size) >> +{ >> + =C2=A0 =C2=A0float32 *v =3D pv; >> + =C2=A0 =C2=A0VMStateFloat32 u; >> + =C2=A0 =C2=A0u.f =3D *v; >> + =C2=A0 =C2=A0qemu_put_be32s(f, &u.i); >> +} > > This conversion (float32<->uint32_t) should be done via > float32_val() and make_float32(). you are right. we can even simplify things with this. Thanks.