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/

Reply via email to