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