------------------- P O S I X   M E S S A G E   Q U E U E S --------------------

After discovering that Trevor's (Woolven) kernel space implementation of POSIX 
message queues were usable directly, almost unchanged, with RTAI, i.e. without 
the specific kernel POSIX support found within RTAI itself, it followed that
they had to work symmetrically in user space also.
Their structuring within RTAI is eased in the new experimental layout, which 
much eases features expansions, without bloating the core code of the 
schedulers.
Message queues have the advantage of allowing fully prioritised send/receives,
TBX has just the possibility of urging ahead of anything already sent, MBX none.
However to avoid the nightmare of managing etherougeneously fragmented buffers,
under hard real time constraints, they require that a maximum per message size 
is assigned at their creation. So once more the RTAI user is provided another 
tool for its programming APIs toolbox, within which he/she can chose any objects
that suites his/her needs, or a combination thereof.
It should be remarked that the mq.c file found here contains also timed versions
of send/receive, that were missing in its native parent, once found under the 
"/posix/src" directory. 
At the moment this POSIX type message queues adopt the POSIX standard naming, 
thanks to the fact that RTAI core APIs had nothing similar to them yet.
Thus they are somewhat inconsistent with the standard conditional and timed 
services provided by other RTAI IPCs, in that they provide just send/receive 
with absolute timeout, vs the rest of RTAI that has always both absolute and 
relative timeouts. Moreover the timing is based on the POSIX timespec format, 
vs RTAI that uses internal count unit.
Then the present solution is just a provisional one, comprimising on POSIX till
a full native POSIX support will be available, in place of the actual one
mainly based on wrapping RTAI native services. Once the new POSIX base will be
in place the present message queues will become native RTAI functionalities, 
i.e. with the standard: ..._if, ..._until, ..._timed versions.

Paolo Mantegazza.
