[U-Boot] [PATCH v1 (WIP) 09/16] [Timer]Replace get_timer() usage in drivers/block/
Graeme Russ
graeme.russ at gmail.com
Wed Jun 29 07:38:05 CEST 2011
Hi Simon,
>>
>> u32 end = time_future_ms(timeout);
>>
>> do {
>> ...blah...
>> } while(time_now_ms() < end);
> ...
>
> Actually:
>
> } while (time_passed_ms(end))
Sorry, but I think you've lost me here...
>
> but anyway I agree it is a matter of taste and I'm quite happy with
> the approach here at the moment.
>
> But what about my question about signed ints for deltas?
We use signed int's to allow seamless roll-overs of the timer counter.
One thing the API does not require is that a given low-level timer counts
from zero - It can start with any value and therefore may roll-over at
any time. By using unsigned provided there is at most one rollover between
timing events (which for a 32-bit millisecond counter is a very long time)
the logic remain trivial (time = end - start) - We don't have to try and
detect the rollover.
Also, we assume the u-Boot will never be installed in a time machine, and
will therefore never need to calculate negative time. Please let us know
if you plan to boot a TARDIS using U-Boot ;)
Regards,
Graeme
More information about the U-Boot
mailing list