From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [Qemu-devel] Re: [RFC: 0/2] patch for QEMU HPET periodic timer emulation to alleviate time drift Date: Mon, 07 Feb 2011 17:29:10 +0200 Message-ID: <4D500FC6.2080700@redhat.com> References: <480481933.225059.1296734409954.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com> <1375835067.226263.1296740625327.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com> <4D4AC99A.2070803@siemens.com> <4D4B0B07.2040904@codemonkey.ws> <4D4B1CF8.8040800@web.de> <4D4B5F23.7040801@codemonkey.ws> <4D4BBF55.9060000@web.de> <4D4FE6BF.5080502@redhat.com> <4D4FEF81.1040603@codemonkey.ws> <4D4FF02F.2030309@redhat.com> <4D4FF24A.7000004@codemonkey.ws> <4D4FFD3B.2030903@siemens.com> <4D5001A0.8020503@codemonkey.ws> <4D5004FC.80000@siemens.com> <4D5007B9.7060806@codemonkey.ws> <4D500872.3070506@siemens.com> <4D50092C.1080109@codemonkey.ws> <4D500C1A.1070506@redhat.com> <4D500D08.5020709@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Anthony Liguori , qemu-devel , Glauber Costa , Ulrich Obergfell , kvm To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:18301 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751278Ab1BGP3S (ORCPT ); Mon, 7 Feb 2011 10:29:18 -0500 In-Reply-To: <4D500D08.5020709@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On 02/07/2011 05:17 PM, Jan Kiszka wrote: > On 2011-02-07 16:13, Avi Kivity wrote: > > On 02/07/2011 05:01 PM, Anthony Liguori wrote: > >> > >> typedef struct PeriodicTimer PeriodicTimer; > >> > >> /** > >> * @accumulated_ticks: the number of unacknowledged ticks in total > >> since the creation of the timer > >> **/ > > > > Outdated comment even before the code is committed. Will be hard to beat. > > > >> typedef void (PeriodicTimerFunc)(void *opaque); > > > > s/void *opaque/PeriodicTimer *timer/ > > > > Down with opaques! > > What else? DeviceState? typedef void (PeriodicTimerFunc)(PeriodicTimer *timer); the callback then uses container_of() to get whatever its internal data structure is from the embedded PeriodicTimer. > >> > >> PeriodicTimer *periodic_timer_new(PeriodicTimerFunc *cb, void *opaque); > >> > > > > void periodic_timer_init(PeriodicTimer *timer, PeriodicTimerFunc *cb); > > > > It is better to embed than to reference. > > Likely, though this diverges from exiting QEMUTimer. That's the more modern style. Saves allocations and dereferences, and is more type safe. -- error compiling committee.c: too many arguments to function