Gang,
Gabor Kiss Recently suggested:
> > Is there any way to flush a fifo ?
>
> char buf;
> rtl_irqstate_t flags;
>
> rtl_no_interrupts(flags);
> while (rtf_get(FIFO_NUMBER, &buf, 1)>0);
> rtl_restore_interrupts(flags);
May I humbly suggest doing it with as few calls as possible when
interrupts are disabled? I would suggest something more like:
static char buf[1024];
rtl_irqstate_t flags;
rtl_no_interrupts(flags);
while (rtf_get(FIFOR_NUMBER, &buf, 1000) == 1000) {
;
}
rtl_restore_interrupts(flags);
Alternatively, a quick browse of rtl_fifo.c in the kernel source
shows an rtf_flush function which takes the FIFO number as an argument and
handles protecting from interrupts. I would recommend using that function
unless one of the FSM guys complains about non-published APIs, etc.
Steve
P.S. For the FSM guys, why hasn't rtf_flush been published? Too much coding
to keep up with documentation or not-available on purpose? How about
rtf_isempty? These look useful!
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/