NAME
rtf_get - read data from a real-time fifo
SYNOPSIS
#include <rtl_fifo.h>
int rtf_get(unsigned int fifo, char * buf, int count);
DESCRIPTION
rtf_get reads a block of data from a real-time fifo (RT-
FIFO) previously created with a call to rtf_create(3).
fifo is the ID with which the RT-FIFO was created. buf is
the block of data to be filled with the received bytes,
while count is the size of the block in bytes. This mech
anism is available only to real-time tasks; Linux pro
cesses use a read (2) from the corresponding fifo device
to dequeue data from a fifo. Similarly, Linux processes
use write (2) or similar functions to write the data to be
read via rtf_put by a real-time task.
rtf_get is often used in conjunction with rtf_create_han
dler to process data received asynchronously from a Linux
process. A handler is installed via rtf_create_handler;
this handler calls rtf_get to receive any data present in
the RT-FIFO as it becomes available. In this way, polling
is not necessary; the handler is called only when data is
present in the fifo.
The RT-FIFO is a mechanism, implemented as a character
device, to communicate between real-time tasks and ordi
nary Linux processes. The rtf_* functions are used by the
real-time tasks; Linux processes use standard character
device access functions such as read(2), write(2), and
select(2).
RETURN VALUE
On success, the size of the received data block is
returned. Note that this value may be less than count if
count bytes are not available in the fifo. On failure, a
negative value is returned as described below.
ERRORS
-ENODEV
fifo is greater than or equal to RTF_NO.
-EINVAL
fifo is not a valid RT-FIFO identifier.
SEE ALSO
read(2), rtf_create(3), rtf_create_handler(3),
rtf_destroy(3), rtf_put(3), write(2)
Man(1) output converted with
man2html