Hi.
As Steve Papacharalambous indicated in earlier mail,
Jerry Epplin's rt_ipc package seems not to be ported to NMT
rtlinux-2.0 (though rt_ipc package is included in rtlinux-2.0pre6)
and Steve's rtai_rtl_newfifos package is the only IPC package
available for rtlinux-2.0 now.
So I have checked out rtai_rtl_newfifos IPC package.
First, I could not run correctly rtlinux-2.0 FIFO example program
in rtl/examples/frank without any modification.
There is difference between the original NMT rtlinux FIFOs and
rtai_rtl_newfifos:
Size parameter of read system call in Linux application
- NMT rtlinux FIFOs: return data available to file descriptor
immediately in spite of 'size' bytes are not available.
- rtai_rtl_newfifos: wait until 'size' bytes are available and
then return 'size' bytes.
See the rtl/examples/frank source file:
frank_module.c
rtf_put(fifo, data[fifo - 1], 6);
frank_app.c
#define BUFSIZE 70
n = read(fd0, buf, BUFSIZE - 1);
read() in frank_app.c with rtlinux-2.0 FIFOs returns every time
when frank_module calls rtf_put(). However, when frank runs with
rtai_rtl_newfifos, read() in frank_app.c wait until BUFSIZE-1
bytes are available in fd0.
I think that the semantic of UNIX read() syscall is much close
to NMT rtlinux-2.0.
Second, is it natually impossible to use blocking services
(e.g. rtf_sem_wait and rtf_sem_timed_wait, etc) in kernel module?
It may be neccesary in many real-time application.
If it is possible and somebody can help Steve's great work,
how can I contribute to it?
Heo, Sung-Gwan
--- [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/