|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 02 of 10] arm: implement udelay()
At 19:03 +0000 on 23 Feb (1330023834), David Vrabel wrote:
> On 23/02/12 17:40, Tim Deegan wrote:
> > arm: implement udelay()
> >
> > Signed-off-by: Tim Deegan <tim@xxxxxxx>
> >
> [...]
> > diff -r 4a7c14209131 -r ec051056db2b xen/arch/arm/time.c
> > --- a/xen/arch/arm/time.c Thu Feb 23 17:39:59 2012 +0000
> > +++ b/xen/arch/arm/time.c Thu Feb 23 17:39:59 2012 +0000
> > @@ -171,6 +171,16 @@ void __cpuinit init_timer_interrupt(void
> > request_irq(30, timer_interrupt, 0, "phytimer", NULL);
> > }
> >
> > +/* Wait a set number of microseconds */
> > +void udelay(unsigned long usecs)
> > +{
> > + s_time_t deadline = get_s_time() + 1000 * (s_time_t) usecs;
> > + do {
> > + dsb();
> > + isb();
>
> What are these barriers for?
To make sure the CPU doesn't hoist any instructions past the wait
loop. :) They don't really have to be inside the loop body; I can
change that if you like.
Tim.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |