|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] Re: [RFC: 0/2] patch for QEMU HPET periodic timer emulation to alleviate time drift |
Date: | Mon, 07 Feb 2011 13:30:40 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027 Lightning/1.0b1 Thunderbird/3.0.10 |
On 02/07/2011 09:29 AM, Avi Kivity wrote:
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.
For the purposes of this, I think passing an opaque is better because the signature stays the same as the existing timer callback. That makes conversion a bit friendlier.
I think it's better to avoid introducing stylistic changes with new interfaces. I think they should be done separately.
Regards, Anthony Liguori
>>>> 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.
[Prev in Thread] | Current Thread | [Next in Thread] |