#include <rtai_types.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <rtai_lxrt.h>
Go to the source code of this file.
Classes | |
| struct | rt_fifo_info_struct |
| struct | rt_fifo_get_info_struct |
Defines | |
| #define | MAX_FIFOS 64 |
| #define | RTAI_FIFOS_MAJOR 150 |
| #define | RESET 1 |
| #define | RESIZE 2 |
| #define | RTF_SUSPEND_TIMED 3 |
| #define | OPEN_SIZED 4 |
| #define | READ_ALL_AT_ONCE 5 |
| #define | READ_TIMED 6 |
| #define | WRITE_TIMED 7 |
| #define | RTF_SEM_INIT 8 |
| #define | RTF_SEM_WAIT 9 |
| #define | RTF_SEM_TRYWAIT 10 |
| #define | RTF_SEM_TIMED_WAIT 11 |
| #define | RTF_SEM_POST 12 |
| #define | RTF_SEM_DESTROY 13 |
| #define | SET_ASYNC_SIG 14 |
| #define | EAVESDROP 19 |
| #define | OVRWRITE 20 |
| #define | READ_IF 21 |
| #define | WRITE_IF 22 |
| #define | RTF_NAMED_CREATE 23 |
| #define | RTF_GET_N_FIFOS 15 |
| #define | RTF_GET_FIFO_INFO 16 |
| #define | RTF_CREATE_NAMED 17 |
| #define | RTF_NAME_LOOKUP 18 |
| #define | RTF_NAMELEN 15 |
| #define | FUN_FIFOS_LXRT_INDX 10 |
| #define | _CREATE 0 |
| #define | _DESTROY 1 |
| #define | _PUT 2 |
| #define | _GET 3 |
| #define | _RESET 4 |
| #define | _RESIZE 5 |
| #define | _SEM_INIT 6 |
| #define | _SEM_DESTRY 7 |
| #define | _SEM_POST 8 |
| #define | _SEM_TRY 9 |
| #define | _CREATE_NAMED 10 |
| #define | _GETBY_NAME 11 |
| #define | _OVERWRITE 12 |
| #define | _PUT_IF 13 |
| #define | _GET_IF 14 |
| #define | _NAMED_CREATE 15 |
Functions | |
| RTAI_PROTO (int, rtf_create,(unsigned int fifo, int size)) | |
| RTAI_PROTO (int, rtf_destroy,(unsigned int fifo)) | |
| RTAI_PROTO (int, rtf_put,(unsigned int fifo, const void *buf, int count)) | |
| RTAI_PROTO (int, rtf_put_if,(unsigned int fifo, const void *buf, int count)) | |
| RTAI_PROTO (int, rtf_get,(unsigned int fifo, void *buf, int count)) | |
| RTAI_PROTO (int, rtf_get_if,(unsigned int fifo, void *buf, int count)) | |
| RTAI_PROTO (int, rtf_reset_lxrt,(unsigned int fifo)) | |
| RTAI_PROTO (int, rtf_resize_lxrt,(unsigned int fifo, int size)) | |
| RTAI_PROTO (int, rtf_sem_init_lxrt,(unsigned int fifo, int value)) | |
| RTAI_PROTO (int, rtf_sem_post_lxrt,(unsigned int fifo)) | |
| RTAI_PROTO (int, rtf_sem_trywait_lxrt,(unsigned int fifo)) | |
| RTAI_PROTO (int, rtf_sem_destroy_lxrt,(unsigned int fifo)) | |
| RTAI_PROTO (int, rtf_named_create_lxrt,(const char *name, int size)) | |
| RTAI_PROTO (int, rtf_create_named_lxrt,(const char *name)) | |
| RTAI_PROTO (int, rtf_getfifobyname_lxrt,(const char *name)) | |
| RTAI_PROTO (int, rtf_ovrwr_put,(unsigned int fifo, const void *buf, int count)) | |
| RTAI_PROTO (int, rtf_reset,(int fd)) | |
| RTAI_PROTO (int, rtf_resize,(int fd, int size)) | |
| RTAI_PROTO (int, rtf_suspend_timed,(int fd, int ms_delay)) | |
| Suspend a process for some time. | |
| RTAI_PROTO (int, rtf_open_sized,(const char *dev, int perm, int size)) | |
| Create a real-time FIFO. | |
| RTAI_PROTO (int, rtf_evdrp,(int fd, void *buf, int count)) | |
| RTAI_PROTO (int, rtf_read_all_at_once,(int fd, void *buf, int count)) | |
| Read data from FIFO in user space, waiting for all of them. | |
| RTAI_PROTO (int, rtf_read_timed,(int fd, void *buf, int count, int ms_delay)) | |
| Read data from FIFO in user space, with timeout. | |
| RTAI_PROTO (int, rtf_read_if,(int fd, void *buf, int count)) | |
| RTAI_PROTO (int, rtf_write_timed,(int fd, void *buf, int count, int ms_delay)) | |
| Write data to FIFO in user space, with timeout. | |
| RTAI_PROTO (int, rtf_overwrite,(int fd, void *buf, int count)) | |
| RTAI_PROTO (int, rtf_write_if,(int fd, void *buf, int count)) | |
| RTAI_PROTO (int, rtf_sem_init,(int fd, int value)) | |
| RTAI_PROTO (int, rtf_sem_wait,(int fd)) | |
| Take a semaphore. | |
| RTAI_PROTO (int, rtf_sem_trywait,(int fd)) | |
| RTAI_PROTO (int, rtf_sem_timed_wait,(int fd, int ms_delay)) | |
| Wait a semaphore with timeout. | |
| RTAI_PROTO (int, rtf_sem_post,(int fd)) | |
| RTAI_PROTO (int, rtf_sem_destroy,(int fd)) | |
| RTAI_PROTO (int, rtf_set_async_sig,(int fd, int signum)) | |
| Activate asynchronous notification of data availability. | |
| RTAI_PROTO_ALWAYS_INLINE (char *, rtf_getfifobyminor,(int minor, char *buf, int len)) | |
| RTAI_PROTO (int, rtf_getfifobyname,(const char *name)) | |
| RTAI_PROTO (int, rtf_named_create,(const char *name, int size)) | |
| RTAI_PROTO (int, rtf_create_named,(const char *name)) | |
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Definition in file rtai_fifos.h.
|
|
Definition at line 77 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 87 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 78 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 80 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 91 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 88 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 92 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 89 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 79 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 90 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 81 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 82 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 84 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 83 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 85 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 86 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 49 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 75 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 31 of file rtai_fifos.h. |
|
|
Definition at line 38 of file rtai_fifos.h. |
|
|
Definition at line 50 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 39 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 51 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 40 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 35 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 36 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 33 of file rtai_fifos.h. |
|
|
Definition at line 57 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 56 of file rtai_fifos.h. |
|
|
Definition at line 55 of file rtai_fifos.h. |
|
|
Definition at line 58 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 53 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 60 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 47 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 42 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 46 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 45 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 44 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 43 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 37 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 48 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 52 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
|
Definition at line 41 of file rtai_fifos.h. Referenced by RTAI_PROTO(). |
|
||||||||||||||||
|
Definition at line 766 of file rtai_fifos.h. References RTF_CREATE_NAMED, and RTF_NAMELEN. |
|
||||||||||||||||
|
Definition at line 749 of file rtai_fifos.h. References RTF_NAMED_CREATE, and RTF_NAMELEN. |
|
||||||||||||||||
|
Definition at line 732 of file rtai_fifos.h. References RTF_NAME_LOOKUP, and RTF_NAMELEN. |
|
||||||||||||||||
|
Activate asynchronous notification of data availability. rtf_set_async_sig activate an asynchronous signals to notify data availability by catching a user set signal signum.
Definition at line 715 of file rtai_fifos.h. References SET_ASYNC_SIG. |
|
||||||||||||||||
|
Definition at line 698 of file rtai_fifos.h. References RTF_SEM_DESTROY. |
|
||||||||||||||||
|
Definition at line 692 of file rtai_fifos.h. References RTF_SEM_POST. |
|
||||||||||||||||
|
Wait a semaphore with timeout. rtf_sem_timed_wait is a timed version of the standard semaphore wait call. The semaphore value is tested and set to zero. If it was one rtf_sem_timed_wait returns immediately. Otherwise the caller process is blocked and queued up in a priority order based on is POSIX real time priority. A process blocked on a semaphore returns when:
Definition at line 686 of file rtai_fifos.h. References RTF_SEM_TIMED_WAIT. |
|
||||||||||||||||
|
Definition at line 654 of file rtai_fifos.h. References RTF_SEM_TRYWAIT. |
|
||||||||||||||||
|
Take a semaphore. rtf_sem_wait waits for a event to be posted (signaled) to a semaphore. The semaphore value is set to tested and set to zero. If it was one rtf_sem_wait returns immediately. Otherwise the caller process is blocked and queued up in a priority order based on is POSIX real time priority. A process blocked on a semaphore returns when:
Definition at line 648 of file rtai_fifos.h. References RTF_SEM_WAIT. |
|
||||||||||||||||
|
Definition at line 620 of file rtai_fifos.h. References RTF_SEM_INIT. |
|
||||||||||||||||
|
Definition at line 613 of file rtai_fifos.h. References WRITE_IF. |
|
||||||||||||||||
|
Definition at line 606 of file rtai_fifos.h. References OVRWRITE. |
|
||||||||||||||||
|
Write data to FIFO in user space, with timeout. rtf_write_timed writes a block of data to a real-time fifo identified by the file descriptor fd waiting at most @æ delay milliseconds to complete the operation.
Definition at line 599 of file rtai_fifos.h. References delay(), and WRITE_TIMED. |
|
||||||||||||||||
|
Definition at line 571 of file rtai_fifos.h. References READ_IF. |
|
||||||||||||||||
|
Read data from FIFO in user space, with timeout. rtf_read_timed reads a block of data from a real-time fifo identified by the file descriptor fd waiting at most delay milliseconds to complete the operation.
Definition at line 564 of file rtai_fifos.h. References delay(), and READ_TIMED. |
|
||||||||||||||||
|
Read data from FIFO in user space, waiting for all of them. rtf_read_all_at_once reads a block of data from a real-time fifo identified by the file descriptor fd blocking till all waiting at most count bytes are available, whichever option was used at the related device opening.
Definition at line 536 of file rtai_fifos.h. References READ_ALL_AT_ONCE. |
|
||||||||||||||||
|
Definition at line 513 of file rtai_fifos.h. References EAVESDROP. |
|
||||||||||||||||
|
Create a real-time FIFO. rtf_open_sized is the equivalent of rtf_create() in user space; it creates a real-time fifo (RT-FIFO) of initial size size.
If this function finds an existing fifo of lower size it resizes it to the larger new size. Note that the same condition apply to the standard Linux device open, except that when it does not find any already existing fifo it creates it with a default size of 1K bytes. It must be remarked that practically any fifo size can be asked for. In fact if size is within the constraint allowed by kmalloc such a function is used, otherwise vmalloc is called, thus allowing any size that can fit into the available core memory. Multiple calls of this function are allowed, a counter is kept internally to track their number, and avoid destroying/closing a fifo that is still used.
Definition at line 499 of file rtai_fifos.h. References RESIZE. |
|
||||||||||||||||
|
Suspend a process for some time. rtf_suspend_timed suspends a Linux process according to delay.
Definition at line 459 of file rtai_fifos.h. References RTF_SUSPEND_TIMED. |
|
||||||||||||||||
|
Definition at line 439 of file rtai_fifos.h. References RESIZE. |
|
||||||||||||||||
|
Definition at line 433 of file rtai_fifos.h. References RESET. |
|
||||||||||||||||
|
Definition at line 425 of file rtai_fifos.h. References _OVERWRITE, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 416 of file rtai_fifos.h. References _GETBY_NAME, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, len, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 407 of file rtai_fifos.h. References _CREATE_NAMED, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, len, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 398 of file rtai_fifos.h. References _NAMED_CREATE, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, len, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 392 of file rtai_fifos.h. References _SEM_DESTRY, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 386 of file rtai_fifos.h. References _SEM_TRY, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 380 of file rtai_fifos.h. References _SEM_POST, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 374 of file rtai_fifos.h. References _SEM_INIT, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 368 of file rtai_fifos.h. References _RESIZE, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 362 of file rtai_fifos.h. References _RESET, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 350 of file rtai_fifos.h. References _GET_IF, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 338 of file rtai_fifos.h. References _GET, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 330 of file rtai_fifos.h. References _PUT_IF, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 322 of file rtai_fifos.h. References _PUT, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 316 of file rtai_fifos.h. References _DESTROY, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 310 of file rtai_fifos.h. References _CREATE, FUN_FIFOS_LXRT_INDX, rtai_lxrt_t::i, LOW, rtai_lxrt(), and SIZARG. |
|
||||||||||||||||
|
Definition at line 726 of file rtai_fifos.h. References CONFIG_RTAI_FIFOS_TEMPLATE. |
1.4.4